簡體   English   中英

jqGrid呈現空表

[英]jqGrid renders empty table

我一直在嘗試使用jqGrid 4.1.2渲染表,我能夠從服務器端獲取JSON響應,但是我得到的是空表。 這是我的示例JSON數據:

{
    "response":{
        "total":2,
        "page":1,
        "rows":[{
                "id":135060,
                "cell":{
                    "id":135060,
                    "name":"12"
                }
            },
            {
                "id":115060,
                "cell":{
                    "id":115060,
                    "name":"12345"
                }
            }
        ]
    },
    "status":"SUCCESS",
    "errors":[]
}

我已經添加了jqgrid-locale-en.js文件,所以這不應該成為問題。 在花了一些時間之后,我覺得它與jqGrid期望的JSON格式有關。

謝謝!

對於仍然無法解決問題的情況,這里是解決方案。 您應該使用以下jsonReader

jsonReader : {
    repeatitems : false,
    root: 'response.rows',
    page: 'response.page',
    total: 'response.page',
    records: function (obj) { return obj.response.rows.length; }
}

然后將讀取數據(請參閱演示 )。 我想您在JSON數據中使用了不正確的total屬性,並且根本沒有設置records屬性。

此外,您不應在標准響應中設置錯誤消息。 HTTP協議支持狀態碼 如果在服務器端檢測到錯誤,則服務器應在HTTP標頭中設置錯誤的HTTP代碼 如果jqGrid中的數據處理順序是另一種方式 ,則應該使用loadError事件解碼錯誤消息並為用戶顯示結果。

默認情況下,jqGrid不希望單元格鍵中的數據包含name:value配對。 如果要使用name:value配對,則需要研究使用jsonReader選項並將重復項設置為false。 還請確保每個鍵的名稱與相應的colModel名稱完全相同。

沒有更多代碼很難說。 在問類似這樣的問題時,您應該發布所有代碼,但請嘗試類似這樣的事情以及您要設置的其他選項...

$("#id").jqGrid({
    url: "url"
    mtype: "post",
    datatype: "json",
    jsonReader: {
        repeatitems: false,
        root: "response.rows",
        cell: "cell",
        id: "id",
        page: "page",
        total: "total",
        records: "records"
    },  
});

看來您也沒有傳回記錄鍵,它是服務器端調用返回的總行數

暫無
暫無

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

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