前不久在网络上看见一个很不错的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代码如下

生成 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>
 
 
 
分享在MVC3.0中使用jQuery DataTable 插件 - ryanding - 博客园
http://www.cnblogs.com/ryanding/archive/2011/02/18/1957318.html

分享在MVC3.0中使用jQuery DataTable 插件的更多相关文章

  1. mvc3.0中[ValidateInput(false)]失效的问题

    在asp.net mvc3.0中[ValidateInput(false)]特性失效了,只需要在网站根目录中的web.config中做如下配置即可: <system.web> <ht ...

  2. asp.net MVC3.0 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction

    asp.net MVC3.0 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction 1.带有Render的方法返回值是v ...

  3. 分享7款非常实用的jQuery/CSS3插件演示和源码

    上次我们分享了15款效果很酷的最新jQuery/CSS3特效,非常不错,今天要分享7个非常实用的jQuery/CSS3插件演示和源码,一起来看看. 1.jQuery ajax点击地图显示商家网点分布 ...

  4. MVC3.0 中Razor 学习

    随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0.同时打算在MVC3中全面使用Razor模板引擎.现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出. ...

  5. 分享一个仅0.7KB的jQuery文本框输入提示插件

    由于项目需要,找过几个jQuery文本框输入提示插件来用,但总是有不满意的地方,要么体积较大,要么使用不便,要么会出现把提示文字作为文本框的值的情况.于是我们自己的开发团队制作了这个最精简易用的输入提 ...

  6. jquery.datatable插件从数据库读取数据

    一.分页 分页的基本思想是根据datatable的页码及每页显示的行数,将数据从数据库分段提出,然后再填充到表格中,以达到分页的效果. 这里需要用到datatable插件的几个属性: "sE ...

  7. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  8. 分享8款绚丽的HTML5/jQuery特效插件

    有几天没有分享前端资源了,今天要向大家分享15款非常给力的HTML5/jQuery特效插件,废话少说,一起来看看. 1.CSS3图片重力感应特效 很酷的一款CSS3模拟重力感应特效,你可以拖动图片来甩 ...

  9. JQuery DataTable插件

    参考文件: http://blog.csdn.net/xuechongyang/article/details/8424897 http://blog.csdn.net/llhwin2010/arti ...

随机推荐

  1. 发布时去掉 debug 和 提醒日志,简单无侵入

    在 proguard 文件中加入下面代码,让发布时去掉 debug 和 提醒日志,简单无侵入! -assumenosideeffects class android.util.Log { public ...

  2. 集合-字典(Dictionary)

    字典(散列表):允许按照某个键来访问元素,能根据键快速查找元素,也可以自由添加,删除元素.比较像List<T>类,但没有list向后移动元素的性能开销. .net中最主要的字典类是Dict ...

  3. CodeForces 614D Skills

    排序+枚举+二分 最大的那些变成A,小的那部分提高最小值 #include<cstdio> #include<cstring> #include<cmath> #i ...

  4. AD设计过程中的注意事项

    1.编译报错:off sheet at....是纸张太小的原因,选择大一点的纸张报错就会消失.

  5. 更改CI框架默认访问路径及去掉index.php

    下面是去掉index.php的操作 PHP CodeIgniter(CI)去掉 index.php - Langjun - 博客园 设置访问的默认路径是在

  6. HDU 5611 Baby Ming and phone number

    #include<cstdio> #include<cstring> #include<vector> #include<cmath> #include ...

  7. Delphi2010生成GB2312字库乱码问题

    用Delphi2010做一个点阵字库软件,字库生成部分是从一个用Delphi2007做旧的程序里扣出来的.点阵字库软件完成后生成GB2312字库在LED控制卡上显示为乱码.知道Delphi版本高于20 ...

  8. HUST 1376 Random intersection

    神题.同学指教.1秒AC...http://blog.csdn.net/jtjy568805874/article/details/50724656 #include<cstdio> #i ...

  9. 在线文档转换API word,excel,ppt等在线文件转pdf、png

    在线文档转换API提供word,excel,ppt等在线文件转pdf.png等,文档:https://www.juhe.cn/docs/api/id/259 接口地址:http://v.juhe.cn ...

  10. STM32标准IIC驱动

    IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接 微控制器及其外围设备.也是目前很流行的通讯总线,使用IIC总线做产品能够很大 ...