【问题标题】:jqGrid data not showing but rows are generatingjqGrid 数据未显示但正在生成行
【发布时间】:2012-06-01 13:46:10
【问题描述】:

我正在开发一个 MVC 应用程序。我在我的 aspx 页面中写了一个 jqGrid。

$(document).ready(function () {

            jQuery("#jqgajax").jqGrid({

                url: 'http://localhost:54136/home/fetchData',
                datatype: "json",
                colNames: ['ProcessName', 'WorkingSet64'],
                colModel: [
                            { name: 'ProcessName', index: 'ProcessName', width: 55 },
                            { name: 'WorkingSet64', index: 'WorkingSet64', width: 90 }
                        ],
                rowNum: 80,
                mtype:'Get',
                width: 700,
                rowList: [10, 20, 30],
                sortname:'id',
                viewrecords: true,
                sortorder: "desc",
                caption: "New API Example"
            });
        });

控制器上的 C# 代码:

 var jsonData = new
           {
               total =10,
               page = 10,
               records = 10,
               rows = (
                from p in pu
                select new
                {
                    id = ++counter,
                    cell = new
                    {
                        ProcessName = p.ProcessName.ToString(),
                        WorkingSet64 = p.Memory.ToString()
                    }
                }).ToArray()
           };


            return Json(jsonData,JsonRequestBehavior.AllowGet);

在网格中生成行的问题,但行中没有数据。

请让我知道我做错了什么。

【问题讨论】:

    标签: c# jquery asp.net-mvc json jqgrid


    【解决方案1】:

    默认jsonReader 等待cell 作为字符串数组。所以你应该替换部分代码

    cell = new
    {
        ProcessName = p.ProcessName.ToString(),
        WorkingSet64 = p.Memory.ToString()
    }
    

    cell = new [] { p.ProcessName, p.Memory.ToString() }
    

    【讨论】:

    • 谢谢,它就像一个魅力,但请让我知道为什么它是这样制作的,连续我只有一个实体而不是一个数组。
    • @vaibhav:您应该只选择某种格式的 JSON 数据并定义描述 JSON 格式的 jqGrid 的 jsonReader 选项。例如,如果ProcessName 值是唯一的,您可以在服务器代码中使用var jsonData = (from p in pu select new { ProcessName = p.ProcessName, WorkingSet64 = p.Memory.ToString() }).ToArray()。然后 JSON 将类似于 [{"ProcessName": "p1", "WorkingSet64": "123"}, {"ProcessName": "p2", "WorkingSet64":"345"}]
    • @vaibhav:要读取数据,您可以使用jsonReader: {repeatitems: false, id: "ProcessName", records: function (obj) { return obj.length; }, root: function (obj) { return obj; }, page: function () { return 1; }, total: function () { return 1; }}。还有许多其他示例如何格式化服务器上​​的数据,但您应该始终使用相应的jsonReader 或有时在colModel 中另外使用jsonmap 属性。
    猜你喜欢
    • 2016-11-13
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 2015-01-25
    相关资源
    最近更新 更多