如果json值发生变化,如何在jquery jqGrid中重新加载数据?

时间:2016-06-21 06:00:03

标签: javascript jquery json jqgrid

我已经创建了一个jquery网格并将json数据加载到它中。我弹出了一些radiobuttons ..基于该选择,json值被更改。这是第一次将json加载到gqgrid中。但是当我选择其他单选按钮时,json值会被更改,但是新的json没有加载到jqgrid中。旧的json正在展示。

我试过了,

    obj.datatype = "local";
        obj.viewrecords = true;
        obj.rowNum = 20;
        obj.pager = "#jqGridPager";
        obj.data = jsonValue;
        obj.localReader = {repeatitems: true};
        obj.rowList = [20,30,50];
        obj.loadonce = true; 
        obj.colModel = [
                        { "label": 'Id', "name": 'studentId', "width": "150" , "key" : true},
                        { "label": 'No', "name": 'studentNo', "width": "150"},
                        { "label": 'Name', "name": 'studentName', "width": "150"},
                        { "label": 'Phone', "name": 'studentPhone', "width": "150"},
                        { "label":'Email', "name": 'primaryContactEmail', "width": "150" },
                        { "label":'Address', "name": 'studentAddress', "width": "150" }

                    ];
        obj.multiselect = true;
        obj.navOptions = { reloadGridOptions: { fromServer: true } };
        //console.log(obj)
    $("#grid_json").jqGrid(obj).jqGrid('filterToolbar').navGrid('#jqGridPager',
                { edit: false, add: false, del: false, search: true, refresh: true, view: true, position: "left", cloneToTop: true },
    {
        editCaption: "The Edit Dialog",
        recreateForm: true,
        checkOnUpdate : true,
        checkOnSubmit : true,
        closeAfterEdit: true,
        errorTextFormat: function (data) {
            return 'Error: ' + data.responseText
        }
    },
    // options for the Add Dialog
    {
        closeAfterAdd: true,
        recreateForm: true,
        errorTextFormat: function (data) {
            return 'Error: ' + data.responseText
        }
    },
    // options for the Delete Dailog
    {
        errorTextFormat: function (data) {
            return 'Error: ' + data.responseText
        }
    },
    {
     multipleSearch: true
   }

    )
    // add first custom button
   /*  $('#grid_json').navButtonAdd('#jqGridPager',
        {
            buttonicon: "ui-icon-mail-closed",
            title: "Send Mail",
            caption: "Send Mail",
            position: "last",
           // onClickButton: customButtonClicked
        }); */


   /// add second custom button
   $('#grid_json').navButtonAdd('#jqGridPager',
        {
            buttonicon: "ui-icon-pencil",
            title: "Edit",
            caption: "Edit",
            position: "last",
            //onClickButton: customButtonClicked
        });

1 个答案:

答案 0 :(得分:0)

首先尝试清除网格数据,然后将网格选项的数据属性重置为新的json数据。

  var grid = $("#grid_json");

   grid.jqGrid('clearGridData').jqGrid('setGridParam', {
    data: new_data
   }).trigger('reloadGrid', [{ page: 1 }]);