2

您如何在控制器操作中设置用户数据。我这样做的方式是打破我的网格。我正在尝试一个没有运气的简单测试。这是我的代码不起作用。谢谢。

       var dataJson = new
        {

            total = 
            page = 1,
            records = 10000,
            userdata = "{test1:thefield}",
            rows = (from e in equipment
                    select new
                    {
                        id = e.equip_id,
                        cell = new string[] {
                e.type_desc,
                e.make_descr,
                e.model_descr,
                e.equip_year,
                e.work_loc,
                e.insp_due_dt,
                e.registered_by,
                e.managed_by
            }
                    }).ToArray()
        };
        return Json(dataJson);
4

1 回答 1

2

我认为您不必将其转换为数组。我使用了 jqGrid,我只是让 Json 函数序列化对象。我不确定这会导致问题,但至少没有必要。

此外,您的用户数据将评估为字符串(因为您将其作为字符串发送)。尝试将其作为匿名对象发送。IE:

userdata = new { test1 = "thefield" },

您需要一个总计值以及该值和页面之间的逗号。(我猜这是一个错字。我认为这不会按原样编译。)

编辑:另外,我建议将选项“jsonReader:{repeatitems:false}”添加到您的javascript。这将允许您在“行”字段中发送您的集合,而无需将其转换为“{id: ID, cell: [data_row_as_array] }”语法。您可以在 colModel 中设置属性“key = true”以指示哪个字段是 ID。它使将数据传递到网格变得更加简单。

于 2009-12-22T02:01:54.220 回答