jqgrid加载页面加载。但不会在选择列表更改时重新加载

苏尼尔·何塞(Sunil Jose)

我有一个jqGrid可以在页面加载时加载所有员工的数据。有一个部门选择列表。在更改该选择列表上的选择时,将检索部门的数据,但会再次重新加载相同的所有雇员数据,而不是重新筛选的数据。我怎样才能解决这个问题?

$(function () {            
    jQuery("#jQGridDemo").jqGrid({
        url: 'EmployeeTransfer.aspx/getEmployeesOnLoad',
        datatype: 'json',
        mtype: 'POST',
        colNames: ['Project Name', 'Project Code', 'Emp Code', 'Emp Name', 'Department', 'Designation', 'Stage', 'Id'],
        colModel: [
            { name: 'ProjectName', index: 'ProjectName', width: 90, stype: 'text', sorttype: 'string', search: true },
            { name: 'CompCode', index: 'CompCode', width: 90 },
            { name: 'FullCode', index: 'FullCode', width: 100, sorttype: 'integer', search: true },
            { name: 'EmpName', index: 'EmpName', width: 260, sorttype: 'string', search: true },
            { name: 'department', index: 'department', width: 270, hidden: true },
            { name: 'designation', index: 'designation', width: 260, sorttype: 'string', search: true },
            { name: 'Stage', index: 'Stage', width: 260 },
            { name: 'Id', index: 'Id', key: true, width: 70, sorttype: "int",hidden:true },
        ],
        search: true,
        rowNum: 30,
        height: 700,
        sortname: 'Id',
        rownumbers: true,
        sortable: true,
        gridview: true,
        loadonce: true,
        pager: '#jQGridDemoPager',
        viewrecords: true,
        autoencode: true,
        multiselect: true,             
        sortorder: "asc",
        caption: "Employee Details",
        onSelectRow: function (ids) {
            if (jQuery("#jQGridDemo").jqGrid('getGridParam', 'records') > 0)
                {                          
                    var rowId = $("#jQGridDemo").jqGrid('getGridParam', 'selrow');
                    var rowData = jQuery("#jQGridDemo").getRowData(rowId);
                    var colData = rowData['EmpName'];
                    jQuery("#jQGridSelect").addRowData(rowId, rowData);
                }
        },
        serializeGridData: function (data) {
            return $.toJSON(data);
        }

    }).jqGrid('hideCol', 'cb');

    $("select#ddlDepts").change(function () {

        var dept = $(this).find(":selected").text().trim();
        $.ajax ({
            type: "POST",
            url: "EmployeeTransfer.aspx/getEmployeesByDept",                   
            data: JSON.stringify({ strParam: dept}),
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            async: true,
            cache: false,                         
            success: function (data) {

                if (data != null) {

                    jQuery('#jQGridDemo').jqGrid('clearGridData')
                          .jqGrid('setGridParam', { data: data, datatype: 'json' })
                          .trigger("reloadGrid", [{ current: true }]);
                }
            },
            error:
            function (x, e) {
                alert("The call to the server side failed. " + x.responseText);
            }

       });
    });
});
苏尼尔·何塞(Sunil Jose)

最后,我能够解决我的问题。对于像我这样挣扎的任何人,下面是有效的代码。

success: function (data) {
    if (data != null) {
        $('#jQGridDemo').clearGridData(true);
        $('#jQGridDemo').setGridParam({ 
            datastr: data.d, 
            datatype: 'jsonstring', 
            rowNum: data.d.length 
        }).trigger('reloadGrid'); 
    }
},

我的json字符串的格式如下:

{
    "d": {
        "page": 0,
        "total": 2,
        "record": 2,
        "rows": [
            {
                "id": 1,
                "cell": [
                    " XXXX",
                    "107",
                    "902000707",
                    "XXXXXXXX",
                    "IT",
                    "SOFTWARE ENGINEER",
                    "Transfer 107 to 109",
                    "1"
                ]
            },
            {
                "id": 2,
                "cell": [
                    "XXXX",
                    "108",
                    "902000164",
                    "XXXXXXXX",
                    "IT",
                    "IT ADMINISTRATOR",
                    "Transfer  108 to 107",
                    "2"
                ]
            }
        ],
        "SortColumn": null,
        "SortOrder": null
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

角组件不会在路线更改时重新加载

自动重新加载扩展程序不会在更改时重新加载

Highcharts 不会在值更改时重新加载或重新渲染图表

React不会在路线参数更改或查询更改时重新加载组件数据

Coffee Script不会在页面更改时触发,但可以在页面加载时使用。[路轨5]

导航栏不会在每次加载页面时重新加载

嵌套的React Router组件不会在页面重新加载时加载/渲染吗?

加载的武器不会在循环内随机重新加载

GoogleMaps不会在页面加载时加载

分页有效,但不会在重新加载时重新附加javascript / css类

react-file-viewer 不会在 filePath 更改时加载新文档

“ window.location.reload”不会在Chrome中重新加载页面

浏览器同步不会在监视任务完成时重新加载页面

角度UI选择不会在下拉列表中加载大列表

zsh不会在提示中重新加载功能

Laravel不会在MAMP上重新加载.env文件

重新加载实时图像而不会在React中闪烁

ts-node-dev不会在自动重新加载中应用更改

即使启用了 HMR,页面也会在 scss 更改时完全重新加载

用于创建相关产品列表的Wix指南不会在点击时重新加载

<a>值不会在页面加载时显示

Angular MatTabChangeEvent不会在页面加载时触发

.openDialog() 方法不会在 TFS 2017 中加载页面

触发 shopify 的 onclick 而不会在页面加载时发生

引导模式不会在页面加载时打开

重新加载后,PHP页面不会更改

芹菜会在任何更改时自动重新加载

Django:对 css 文件的更改不会在 heroku 中加载

来自Javascript文件的方法将在IE中加载,但不会在Chrome中加载