簡體   English   中英

jqGrid-從JSON加載值

[英]jqGrid - loading values from JSON

我有一個jqGrid使用local數據類型jqGrid正常工作,但現在我希望通過json加載值,但無法更改它。

這是我的jqGrid代碼

jQuery("#grid").jqGrid({
        datatype: "json",
        url: "/controller/getItems?id=2",
        width: 1405,
        colNames: ['id', 'surname'],
        colModel: [
            { name: 'id', index: 'id', editable: false, hidden: false, hidedlg: true },
            { name: 'surname', index: 'surname', editable: true }
        ],
        onSelectRow: function (id, status, e) {

        ...
    },
    editurl: url,

     ...

因此,成功觸發了獲取JSON的方法。

    [HttpGet]
    public ActionResult getItems(string id)
    {

        List<model> items = method.getItems(id);
        string jsonText = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(items);
        return Json(jsonText, JsonRequestBehavior.AllowGet);

    }

JSON的列名稱與colModel名稱匹配

返回json示例-上面的jsonText對象包含的內容

[{"id":434,"surname":"Woods"},
{"id":435,"surname":"Adams"}]

我做錯了什么或想念什么嗎?

謝謝

我想在使用System.Web.Script.Serialization.JavaScriptSerializer().Serialize出現錯誤。 您只需要返回Json(items, JsonRequestBehavior.AllowGet); 另外,您可以從colModel刪除列id 仍將讀取id值並將其分配為稱為rowid的行的id屬性值(網格的<tr>元素的id )。 您應該向網格中添加loadonce: true選項,因為您沒有在服務器端實現數據分頁,而是添加了gridview: true (如果尚未使用)以提高性能,並自動autoencode: true以將輸入數據解釋為文本而不是HTML片段。

更新 :如果使用舊版本的jqGrid,則必須包含jsonReader參數,該參數對應於輸入數據的格式:

jsonReader: {
    repeatitems: false,
    root: function (obj) { return obj; }
}

仍然應該另外使用loadonce: true選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM