setGridParam({datatype:'json',page:1})。trigger('reloadGrid')not working

时间:2012-02-01 13:19:36

标签: jqgrid

我不确定什么是错的,但这不适用于我,下面是我的代码,但是重新加载不会向服务器创建任何请求。

    $("#timecard-summary-grid").jqGrid({
    url:'grid/grid_timecard_summary.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Date','Day','Time In','Time Out','Normal','Late','Undertime'],
    colModel :[
      {name:'date', index:'date', width:90, editable:false, align:"center", editrules:{required:true}},
      {name:'day', index:'day', width:70, editable:false, align:"center", editrules:{required:true}},
      {name:'t_in', index:'t_in', width:80, editable:false, align:"center", editrules:{required:true}},
      {name:'t_out', index:'t_out', width:80, editable:false, align:"center", editrules:{required:true}},
      {name:'tdiff', index:'tdiff', width:80, editable:false, align:"center", editrules:{required:true}},
      {name:'late', index:'late', width:80, editable:false, align:"center", editrules:{required:true}},
      {name:'undertime', index:'undertime', width:80, editable:false, align:"center", editrules:{required:true}}
    ],

    height: 'auto',
    pager: '#timecard-summary-pager',
    rowNum:10,
    rowList:[10,20],
    sortname: 'date',
    sortorder: 'desc',
    loadonce: true, // to enable sorting locally
    viewrecords: true,
    gridview: true,
    editurl: 'grid_summary_editurl.php',
    caption: '<span style="margin-left:10px;">Timecard Summary</span>',

    });
    $("#timecard-summary-grid").jqGrid('navGrid',"#timecard-summary-pager",
    {edit:false,add:false,del:false,search:true,refresh:true},
    {zIndex:5234}, //option for edit
    {zIndex:5234}, // for add
    {zIndex:5234}, // del
    {zIndex:5234,   multipleSearch:true, multipleGroup:true} // search
    ); 
    $("#timecard-summary-id").jqGrid("setGridParam",{datatype:"xml"}).trigger("reloadGrid");

我应该把扳机放在哪里?

1 个答案:

答案 0 :(得分:2)

首先,您发布的代码(jqGrid("setGridParam",datatype:"xml"}))包含语法错误:没有打开的'{'。我希望问题仅存在于您的问题文本中,而不是原始代码中。

下一个问题:您尝试更改datatype并在创建网格后直接重新加载网格 。问题是你在jqGrid中使用datatype: 'xml'。因此,在创建网格之后,将立即按照ajax发送对服务器的请求。在挂起的Ajax请求期间重新加载网格的请求将被忽略,不会重新加载。

在完成对服务器的Ajax请求后,datatype将从'xml'更改为'local',对应于选项loadonce: true。所以只有在第一个响应完全处理后才能执行代码

$("#timecard-summary-id").jqGrid("setGridParam", {datatype: "xml"})
    .trigger("reloadGrid");
相关问题