首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将值从控制器传递给jquery数据表

问如何将值从控制器传递给jquery数据表
EN

Stack Overflow用户
提问于 2014-08-12 09:23:40
回答 2查看 7.6K关注 0票数 1

我的datatable脚本代码是:

代码语言:javascript
复制
$('#datatable').dataTable({

        "processing": true,
        "bServerSide": true,
        "sAjaxSource": "/Employee/AjaxHandler",
        "fnServerParams": function ( aoData ) {
            aoData.push( { "name": "start", "value": something } );
        }

这是在控制器中调用AjaxHandler方法:

代码语言:javascript
复制
    public ActionResult AjaxHandler(JQueryDataTableParamModel param,int start)
                {
              ...
return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = count,
                iTotalDisplayRecords = count,
                aaData = result
            },
            JsonRequestBehavior.AllowGet);
                }

我希望返回一个变量,该变量的值来自AjaxHandler方法,该值将赋值给aoData.push()中的属性" value“,当在分页/排序/筛选过程中再次调用时,该属性将被赋值给AjaxHandler方法中名为"start”的参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-12 09:26:44

请参阅下面的链接http://www.codeproject.com/Articles/155422/jQuery-DataTables-and-ASP-NET-MVC-Integration-Part

这是一个关于如何实现创建的目标的完整的逐步指南。

票数 2
EN

Stack Overflow用户

发布于 2014-08-12 11:25:51

我假设您正在尝试使用MVC实现datatable功能(分页等)?@Se0ng11添加的链接非常好,您应该坚持使用它。

为了给您一个开始,您需要为JQueryDataTableParamModel创建一个类:

代码语言:javascript
复制
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; }
}

这个模型被传递给填充了分页、排序和过滤信息的contoller --您不需要添加aoData.push。

在您的控制器操作中:

代码语言:javascript
复制
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中传递的内容

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25260672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档