在网格重新加载时保留过滤器工具栏中的过滤器文本

时间:2014-11-19 05:16:24

标签: jqgrid

我正在使用jqgrid,我试图在网格重新加载后保留过滤器文本。

我有单元格更新功能,

//代码:

  $.ajax({
    url: '@Url.Action("UpdateComments", "Home")',
    datatype: 'json',
    data: { 'resultData': filterResult, 'action': postdata.oper },
    type: 'POST',
    success: OnCompleteComments,
    error: function (xhr, status, error) {
        if (xhr.statusText == "Session TimeOut/UnAuthorized") {
            alert(xhr.statusText);
            window.location.href = '@Url.Action("LogOut", "Account")';
        }
        else
            alert(xhr.responseText);
    }
});
//After update Load the grid.
function OnCompleteComments(result) {

    myfilter = $('#TransactionsGrid').jqGrid("getGridParam", "postData").filters;
    Loadgrid($('#TransactionsGrid').getGridParam('page'));

}

在成功完成单元格的udpate之后,我重新加载单元格的网格以反映udpated值。在OnComplete我将过滤器分配给一个高尔夫声明的变量(myfilter)。

//网格:

datatype: 'local',
hoverrows: false,
colNames: colHeader,
colModel: colname,
localReader: { id: 'TransactionId' },
rowNum: 10,
hidegrid: false,
rownumbers: true,
pager: '#TransactionsGridPager',
viewrecords: true,
caption: "Transaction Details",
height: 'auto',
scrollOffset: 0,
page: PageNumber,
gridview: true,
shrinkToFit: true,
autoencode: true,
ignoreCase: true,
mySelection: {},
onInitGrid: function () {
    // get reference to parameters
    var p = $(this).jqGrid("getGridParam");

    // set data parameter
    p.data = gridData.BuildTransactionsDataTable;

},

在网格重新加载(ajax函数被调用)中,一旦加载了网格,我就会重新分配过滤器。在这个地方,我在网格中得到过滤后的结果,我用来过滤结果的文本不在过滤器工具栏中。它是空的。

GridReload(保留过滤器):

jQuery("#TransactionsGrid").jqGrid({
  });
 if (myfilter) {
      var searchFiler = JSON.parse(myfilter).rules[0].data, grid = $("#TransactionsGrid"), f;
      if (searchFiler.length === 0) {
          grid[0].p.search = false;
          $.extend(grid[0].p.postData, { filters: "" });
      }
      f = { groupOp: "OR", rules: [] };
      f.rules.push({ field: JSON.parse(myfilter).rules[0].field, op: "cn", data: searchFiler });

      grid[0].p.search = true;
      $.extend(grid[0].p.postData, { filters: JSON.stringify(f) });
      grid.trigger("reloadGrid", [{ page: 1, current: true }]);
  }

现在我需要将过滤后的文本保留在过滤器工具栏中。我怎么能做到这一点?

0 个答案:

没有答案