0

我有一个网格,当我单击刷新按钮时,它什么也不做。没有向服务器发出请求。但我可以看到它执行 beforeRequest() 函数。有谁知道发生了什么?

jQuery("#paramlistFlex").jqGrid({
    url: root + mod + '/setlistview',
    datatype: "local",
    colNames:[' ', 'Name of Set', 'Description of Set', 'Date of Set'],
    colModel:[
        {name:'myac', width:50, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{keys:true, editbutton : false, delbutton : false, delOptions: {reloadAfterSubmit:false},editOptions: {reloadAfterSubmit:false}}},
        {name:'set_name',index:'set_name', width:200},
        {name:'set_desc',index:'set_desc', width:400},
        {name:'set_date',index:'set_date', width:200}
        ],
    width: $('.body').width()-25,
    height: ($('.body').height()-240)/2,
    pager: '#pagerFlex2',
    sortname: 'set_id',
    sortorder: "desc",
    editurl: root + mod + '/detailpost',
    caption:"Set of Parameter List",
    onSelectRow: function(id){
        activedf = "#paramlistFlex";
    },
    afterInsertRow: function () {
        var grid = $(this),
        iCol = getColumnIndexByName(grid,'myac'); // 'act' - name of the actions column
        grid.find(">tbody>tr.jqgrow>td:nth-child(" + (iCol + 1) + ")")
        .each(function() {
            if ($(this).find(">div>div").length == 2)
            {
                $("<div>",
                    {
                        title: "Delete",
                        mouseover: function() {
                            $(this).addClass('ui-state-hover');
                        },
                        mouseout: function() {
                            $(this).removeClass('ui-state-hover');
                        },
                        click: function(e) {
                            df_delete_1($(e.target).closest("tr.jqgrow").attr("id"));
                        }
                    }
                  ).css({float:"left"})
                   .addClass("ui-pg-div ui-inline-edit")
                   .append('<span class="ui-icon ui-icon-trash"></span>')
                   .prependTo($(this).children("div"));


            }
        });
    },
    beforeRequest: function() {
        var setid = $('input[name=item]').val();
        if (setid == "")
            setid = 0;

        jQuery("#paramlistFlex").jqGrid('setGridParam',{postData:{setid: setid}});
        console.log('hiya');
    }
});

jQuery("#paramlistFlex").jqGrid('navGrid','#pagerFlex2',{add:false,edit:false,del:false,search:false});
jQuery("#paramlistFlex").jqGrid('gridResize', {minWidth:350, maxWidth:1920, minHeight:80, maxHeight:1080} );
4

1 回答 1

0

datatype: "local"在网格中使用。从您提出的如何填充 jqGrid 的代码中还不清楚。如果您addRowData用于填充,您应该知道这是填充本地网格的最慢方式。

在这种情况下,该url参数将被忽略,datatype: "local"并且网格的重新加载将使用本地数据完成。例如,如果您在第二页上或者如果数据被过滤,则过滤器将被重置并且页码将为 1。如果您想从服务器加载数据,您必须更改datatype"json""xml"相对于setGridParam触发器之前“重载网格”事件。

于 2012-10-24T10:41:07.370 回答