jqGrid没有加载数据

时间:2010-04-24 05:43:34

标签: jqgrid

我正在使用jqGrid作为我的数据表解决方案。以下是配置代码。

$(function() {
    $("#submitInput").click(function() {
        alert("I am called...")
        jQuery("#list").jqGrid({
            datatype: "json",
            url: "http://localhost:1201/admin/someURL.htm",
            mtype:"POST",
            height: "auto",
            colNames:["Column 1", "Column 2", "Column 3", "Column 4", "Column 5"],
            colModel:[
                {name:"col1", index:"col1", sortable:true, resizable:false},
                {name:"col2", index:"col2", sortable:true},
                {name:"col3", index:"col3", sortable:false, resizable:false},
                {name:"col4", index:"col4", sortable:true, resizable:false},
                {name:"col5", index:"col5", sortable:true, resizable:false}
            ],
            sortname:'col1',
            sortorder:'asc',
            pager: $('#pager'),
            rowNum:10,
            viewrecords: true,
            rowList:[10,20,30],
            caption: 'Some Grid Values',
            jsonReader: {
                root: "responseData",
                page: "currentPage",
                total: "totalPages",
                records: "totalFetchedRecords",
                repeatitems: true,
                cell: "rowContent",
                id: "rowID"
            },
            gridComplete: function() {
                alert("Loading done...");
            }
        });
    });
});

我的JSON数据采用以下格式:

"currentPage":"1","responseData":[
    {"rowContent":["Col1_Val_000001","Col2_Val_1","Col3_Val_1","Col4_Val_1","Col5_Val_1"],"rowID":"Col1_Val_000001"},
    {"rowContent":["Col1_Val_000002","Col2_Val_2","Col3_Val_2","Col4_Val_2","Col5_Val_2"],"rowID":"Col1_Val_000002"}
], "totalFetchedRecords":"50","totalPages":"5"}

在我的HTML中,有一个ID为“submitInput”的按钮和一个id为“list”的表。

不知何故,此数据未加载到网格中。是什么原因?

1 个答案:

答案 0 :(得分:0)

可能你不应该在点击句柄内创建jqGrid。您应该在单击句柄之外执行此操作一次,并在处理程序内部调用jQuery("list").trigger('reloadGrid')。如果在开始时数据不应加载到网格中,则可以使用datatype: 'local'作为开头。如果需要,你可以使用hide()show() jQuery函数使用jqGrid进行 div ,有时可访问,有时不可见。在click处理程序内,您可以将datatype更改为'json' setGridParam(),然后调用trigger('reloadGrid')。在很多情况下,您还需要在调用trigger('reloadGrid')之前更改URL的某些参数(请参阅Should one replace the usage addJSONData of jqGrid to the usage of setGridParam(), and trigger('reloadGrid')?),但在您的情况下可能不需要它。