在函数内部调用Jquery网格

时间:2013-07-04 17:53:55

标签: javascript jquery jqgrid

我有一个jquery网格。 我想在下拉列表更改事件中更改jquery网格的数据。

所以我需要在change事件中调用jqgrid。

下面是我的代码

$("#ddlCategory").change(function () {
        UserJqGrid();
    GetMapDataOnChange();                 
});

第一个函数返回一个jqgrid,第二个函数将返回一个映射。 但只有第一次jqgrid加载。之后更改下拉列表,网格数据未更新。

我的UserJqGrid()函数是

$("#list").jqGrid({
    url: "<?php echo base_url() ; ?>userController/GetUserGirdData?catIds=" + str + "&cityId=" + cityId,
    datatype: 'json',
    mtype: 'GET',
    colNames: ['Object Id', 'Name', 'Longitute', 'Latitute', 'Country', 'City'],
    colModel: [{
        name: "id",
        index: "id",
        key: true,
        width: 20,
        editable: true,
        key: true,
        editoptions: {
            readonly: true,
            size: 10
        }
    }, {
        name: "objName",
        index: "objName",
        width: 100,
        editable: true
    }, {
        name: "longi",
        index: "longi",
        width: 30,
        align: "left",
        editable: true
    }, {
        name: "lati",
        index: "lati",
        width: 30,
        align: "left",
        editable: true
    }, {
        name: "countryName",
        index: "countryName",
        width: 50,
        align: "left",
        editable: true
    }, {
        name: "cityName",
        index: "cityName",
        width: 50,
        align: "left",
        sortable: false,
        editable: true
    }, ],
    pager: '#pager',
    rowNum: 10,
    rowList: [10, 20, 30],
    sortname: 'id',
    sortorder: 'desc',
    viewrecords: true,
    width: 900,
    gridview: true,
    shrinkToFit: true,
    //rownumbers: true,
    height: 200,
    caption: 'Shipping Method',
    editurl: '../php/EditShipping.php'

});
jQuery("#list").jqGrid('navGrid', '#pager', {
    edit: true,
    add: true,
    del: false,
    excel: false,
    search: false
});

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。 我称之为grid的重载事件。由于网格已经创建,所以我们不需要再次调用整个函数。只需要用新数据重新加载网格。

jQuery("#list")
.jqGrid('setGridParam',
{ 
  url:"<?php echo base_url() ; ?>userController/GetUserGirdData?catIds=" + str + "&cityId=" +cityId,
  datatype: 'json',
  mtype: 'GET'
}).trigger("reloadGrid");