我的数据表中的脚本代码是:
$('#datatable').dataTable({
"processing": true,
"bServerSide": true,
"sAjaxSource": "/Employee/AjaxHandler",
"fnServerParams": function ( aoData ) {
aoData.push( { "name": "start", "value": something } );
}
并且这被调用控制器的方法AjaxHandler:
public ActionResult AjaxHandler(JQueryDataTableParamModel param,int start)
{
...
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = count,
iTotalDisplayRecords = count,
aaData = result
},
JsonRequestBehavior.AllowGet);
}
我想从AjaxHandler方法的值将被分配给内部aoData.push()属性“值”将被分配给AjaxHandler方法时传呼期间再次呼吁/排序命名为“启动”的参数,返回一个变量我/filtering.How能做到这一点
请参考以下链接http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Part
这是关于如何可以实现目标,以创建Ajax jQuery的数据表相当一个完整的分步指南
我假设你正在试图获得的数据表功能(呼叫等)工作使用MVC? 那@ Se0ng11添加的链接是很不错的,你应该坚持它。
为了让你有点开始,你需要创建一个类JQueryDataTableParamModel
:
public class jQueryDataTableParamModel
{
public string sEcho { get; set; }
public string sSearch { get; set; }
public int iDisplayLength { get; set; }
public int iDisplayStart { get; set; }
public int iColumns { get; set; }
public int iSortingCols { get; set; }
public string sColumns { get; set; }
}
该模型被传递到填充分页位指示,排序和过滤信息-你不需要添加aoData.push
。
在你的控制器动作:
public ActionResult AjaxHandler(JQueryDataTableParamModel param)
{
// query to get data
var data = from a in b select a;
var count = data.count();
//use the paging params on your datasource
var displayedItems = data.Skip(param.iDisplayStart).Take(param.iDisplayLength);
// project results into json for datatable
var result = from r in filteredItems
select new object[]
{
r.Id,
r.Name
...
}
return Json(new
{
param.sEcho,
iTotalRecords = count,
iTotalDisplayRecords = count,
aaData = result
}, JsonRequestBehavior.AllowGet);
}
你可以把一个断点在控制器方法和看看什么在传递JQueryDataTableParamModel