【问题标题】:ASP.NET MVC3 Returning Multiple datasets to jqGrid from ControllerASP.NET MVC3 将多个数据集从控制器返回到 jqGrid
【发布时间】:2012-06-14 13:26:44
【问题描述】:

在我的 MVC3 应用程序中,我使用控制器 actionresult 来返回两组 Json 数据以传递给我的视图中的两个单独的 jqGrid。

控制器的actionresult返回如下:

return Json(new
        {
            A= holderA,
            B= holderB
        },JsonRequestBehavior.AllowGet);  

其中 A 和 B 是从 LINQ to SQL 查询获得的数据数组。

我必须在我的视图中查询 jqGrids,第一个网格应该接受我结果的“A 部分”的数据,第二个网格应该接受我的结果的“B 部分”的数据。

我需要知道如何在 jqGrid 中访问我的 actionresult 的每个单独组件(即 A 和 B),是否有特定选项可以让您参考数据的来源?

如果有帮助的话,一个网格的样子...

jQuery("#GridA").jqGrid({
        url: "/MyController/MyActionresult",
        datatype: 'json',
        postData: {
            Name: function () {
                return $("#Name").val();
            },
            Year: function () {
                return $("#SelectedYear").val()
            }
        },

        mtype: 'POST',
        colNames: ['Name', 'Age', 'Total']
        colModel: [

                { name: 'Name', index: 'Name', align: 'left' },
                { name: 'Age', index: 'Age', align: 'left' },
                { name: 'Total', index: 'Total', width: 150, align: 'left', search: false }],
        pager: jQuery('#GridAPager'),
        rowNum: 250,
        height: 250,
        rowList: [250, 500, 1000, 2000],
        sortname: 'Name',
        sortorder: "asc",
        viewrecords: true,
        hiddengrid: false,
        caption: 'List of People',
        gridComplete: function () {
            onGridComplete("#GridA");}
    });
    $("#GridA").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true });
});

第二个网格几乎相同,显示的字段略有不同。

我宁愿从一个 actionresult 传回两个数据集的原因是,一旦单击表单提交按钮,两个网格都会被填充。

任何帮助都会很棒,

谢谢。

【问题讨论】:

    标签: jquery asp.net-mvc-3 jqgrid


    【解决方案1】:

    了解holderAholderB 中数据的确切格式很重要。您应该定义与数据结构相对应的jsonReader

    您应该了解,如果您使用选项mtype: 'POST',则返回的数据无法被缓存,并且将完成“#GridA”和“#GridB”不同请求的填充。因此,在一个 Action 中组合两个响应将没有任何优势。

    此外,例如,如果用户单击“#GridA”的“名称”列的列标题,则会向 URL "/MyController/MyActionresult" 发送另一个请求。在请求中,参数sord 的值将是“desc”而不是初始请求中的“asc”。如果用户将页面大小从 250 更改为 500,或者如果用户更改了需要显示的页面,也会向服务器发送新请求。

    我试图解释为页面上的所有网格设置单独的操作是有意义的。如果不是所有数据都会显示,并且如果您实现了服务器端排序和分页,那么合二为一就没有多大意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2014-09-07
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多