一起谈.NET技术,分享在MVC3.0中使用jQuery DataTable 插件

简介:   前不久在网络上看见一个很不错的jQuery的DataTable表格插件。后来发现在MVC中使用该插件的文章并不多。本文将介绍在MVC3.0如何使用该插件。在介绍该插件之前先简单介绍一下,推荐该插件的原因。

  前不久在网络上看见一个很不错的jQuery的DataTable表格插件。后来发现在MVC中使用该插件的文章并不多。本文将介绍在MVC3.0如何使用该插件。在介绍该插件之前先简单介绍一下,推荐该插件的原因。在项目中我使用jqgrid比较多。但是发现当进行样式调整时jqgrid的样式常常会让美工头疼。而datatable插件却是一个轻量级的jQuery插件。当我通过浏览器查看该js插件rander后的源码。发现只是一个简单的html table,非常简洁。那么在没有特殊要求的情况下使用这个插件,开发人员js脚本的可维护性将得到简化,美工的样式调整也会变得更轻松!下面介绍如何在MVC3.0中使用DataTable jQuery插件。

  一、DataTable JS 核心脚本文件、 CSS文件及图片

  请到这里下载最新的版本的DataTable插件。该插件内附上了具体的官方DEMO。读者可自行阅读,这里只介绍这个插件的核心文件

  1.jquery.dataTables.min.js

  压缩后的核心js文件

  2.官方提供的CSS文件

  demo_page.css 、demo_table.css、 demo_table_jui.css

  可以自定义CSS样式来满足客户需求。

  3.图片文件

  包含一个Images文件夹,请将该文件请全部拷贝到MVC工程的指定目录,截图如下:                  

  二、DataTable 客户端HTML及JS代码

  html代码:

 
 
< table id = " myDataTable " class = " display " >
< thead >
< tr >
< th >
标识
</ th >
< th >
公司名称
</ th >
< th >
地址
</ th >
< th >
城市
</ th >
</ tr >
</ thead >
< tbody >
</ tbody >
</ table >
< input type = " button " id = " btnTest " value = " 根据条件重新响应后台Ajax " />

  js代:

 
 
< script type = " text/javascript " >
var tbl;
$(function () {
tbl
= $( ' #myDataTable ' ).dataTable({
" bServerSide " : true ,
" sAjaxSource " : " Home/AjaxHandler " , // mvc后台ajax调用接口。
' bPaginate ' : true , // 是否分页。
" bProcessing " : true , // 当datatable获取数据时候是否显示正在处理提示信息。
' bFilter ' : false , // 是否使用内置的过滤功能。
' bLengthChange ' : true , // 是否允许用户自定义每页显示条数。
' sPaginationType ' : ' full_numbers ' , // 分页样式
" aoColumns " : [
{
" sName " : " ID " ,
" bSearchable " : false ,
" bSortable " : false ,
" fnRender " : function (oObj) {
return ' <a href=\"Details/ ' + oObj.aData[ 0 ] + ' \">View</a> ' ;
}
// 自定义列的样式
},
{
" sName " : " COMPANY_NAME " },
{
" sName " : " ADDRESS " },
{
" sName " : " TOWN " }
]
});

// Ajax重新load控件数据。(server端)
$( " #btnTest " ).click(function () {
var oSettings
= tbl.fnSettings();
oSettings.sAjaxSource
= " Home/AjaxHandler2 " ;
alert(oSettings.sAjaxSource);
tbl.fnClearTable(
0 );
tbl.fnDraw();

});
});
</ script >

  三、 MVC 服务端AJAX相关代码

  DataTable Ajax响应参数类:

 
 
public class DataTableParameter
{
/// <summary>
/// DataTable请求服务器端次数
/// </summary>
public string sEcho { get ; set ; }

/// <summary>
/// 过滤文本
/// </summary>
public string sSearch { get ; set ; }

/// <summary>
/// 每页显示的数量
/// </summary>
public int iDisplayLength { get ; set ; }

/// <summary>
/// 分页时每页跨度数量
/// </summary>
public int iDisplayStart { get ; set ; }

/// <summary>
/// 列数
/// </summary>
public int iColumns { get ; set ; }

/// <summary>
/// 排序列的数量
/// </summary>
public int iSortingCols { get ; set ; }

/// <summary>
/// 逗号分割所有的列
/// </summary>
public string sColumns { get ; set ; }
}

  接着使用MVC的 ModelBinder将Action参数实体化:

 
 
public JsonResult AjaxHandler(DataTableParameter param)
{
return Json( new
{
sEcho
= param.sEcho,
iTotalRecords
= 50 ,
iTotalDisplayRecords
= 50 ,
aaData
= new List < object > {
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string [] { " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " },
new string []{ " 1 " , " 公司信息 " , " 地址信息 " , " 城市信息 " }
}
}, JsonRequestBehavior.AllowGet);
}

  四、程序截图

  生成html代码如下:

 
 
< table id = " myDataTable " class = " display " >
< thead >
< tr >
< th style = " width: 239px; " class = " sorting_disabled " >
标识
</ th >
< th style = " width: 366px; " class = " sorting " >
公司名称
</ th >
< th style = " width: 239px; " class = " sorting " >

地址
</ th >
< th style = " width: 239px; " class = " sorting " >
城市
</ th >
</ tr >
</ thead >
< tbody >< tr class = " odd " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " even " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " odd " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " even " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " odd " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " even " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " odd " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " even " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " odd " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr >< tr class = " even " >< td class = " sorting_1 " >< a href = " Details/1 " > View </ a ></ td >< td > 公司信息 </ td >< td > 地址信息 </ td >< td > 城市信息 </ td ></ tr ></ tbody ></ table >
目录
相关文章
|
5天前
|
JavaScript 前端开发
jQuery和CSS3滑动展开菜单按钮插件
这是一款jQuery和CSS3滑动展开菜单按钮插件。该滑动展开菜单按钮在用户点击主菜单按钮之后,子菜单以滑动的方式依次展开
40 21
|
6天前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
37 16
|
1天前
|
JavaScript
jquery文字动画特效插件animatext
jquery文字动画特效插件animatext
17 9
|
4天前
|
移动开发 JavaScript 前端开发
简单易用的jquery响应式轮播图插件ma5slider
ma5slider是一款简单易用的jquery响应式轮播图插件。该轮播图支持鼠标拖拽,可以通过CSS定制外观,支持无限循环模式,内置水平,垂直和淡入淡出三种轮播图过渡动画效果。
|
6天前
|
JavaScript
简洁实用的jQuery进度条插件
这是一款简洁实用的jQuery进度条插件。该插件使用简单,通过在页面中放置指定的HTML代码,即可生成带动画效果的进度条。
|
5天前
|
JavaScript 容器
jQuery文字跑马灯插件Marquee
jQuery.Marquee是一款jQuery文字跑马灯插件。jQuery.Marquee跑马灯插件可以结合使用CSS3动画,制作文字的上下左右移动效果。
|
2天前
|
JavaScript 容器
jquery和CSS3图片排序过滤搜索插件
Filterizr是一款jquery和CSS3图片排序过滤插件。它可以对一组图片进行排序,按条件过滤和按关键字搜索。并在显示结果时使用指定的CSS3动画过渡效果。
14 2
|
2天前
|
JavaScript
jquery和CSS3响应式轮播图插件jcSlider
jcSlider是一款jquery和CSS3响应式轮播图插件。jcSlider使用CSS3过渡动画,它可以和animate.css完美结合,生成60多种轮播图过渡动画效果。
|
6天前
|
JavaScript
jQuery Lightbox和弹出层插件flashy
Flashy.js是一款响应式jQuery Lightbox和弹出层插件
|
4天前
|
JavaScript 容器
jQuery消息通知显示插件
MessageNotifyPlugin是一款简单的jQuery消息通知显示插件。该jQuery消息通知显示插件能够自动生成最新消息和提醒消息两个消息通知按钮。并且可以设置消息的是否已读状态等
8 2
下一篇
DataWorks