如何在 jqgrid 上进行外部过滤

本文关键字:外部 过滤 jqgrid | 更新日期: 2023-09-27 18:35:33

我正在我的 ASP.net Web应用程序中实现jqGrid,我不想使用jqGrid提供的内置过滤。所以,我想到了使用外部过滤。

我将有一个文本框。一旦用户输入值并单击按钮过滤器,我想重新加载网格。我正在使用服务器端分页,我必须进行服务器端筛选。

我有一些关于此的帖子,但我无法找到一个坚实的例子来证明这一点。

我也不知道如何在 C# 代码中接收过滤器值以进行过滤。

如何在 jqgrid 上进行外部过滤

你可以在jQGrid中使用postData参数来完成,并将自己的值传递给过滤和刷新网格

$(document).ready(SearchPatients);

function SearchPatients() {
    'use strict';
    jQuery("#patient-search-grid").jqGrid({
    url: '/Patient/Search/',
    datatype: 'json',
    mtype: 'POST',
    postData: { ID:function(){return $("#txtbkgID").val();} },
    //postData:{search:function () { return getSearchPostData() } }, 
    colNames: [{'Id','Pid','FullName'}],
    colModel: [
               { name: 'Id', index: 'Id',hidden: true },
               { name: 'PatientIdentifier',index: 'PatientIdentifier'},
               { name: 'FullName', index: 'FullName'}
             ],
    height: "100%",
    pager: '#patient-search-pager',
    rowNum: 10,
    rowList: [10, 30, 50],
    sortname: 'Id',
    sortorder: 'desc',
    viewrecords: true,
    caption: "Search Results"
  }
function getSearchPostData(){
 var searchData = {};
 searchData.PatientIdentifier = $('#patient-identifier').val();
 searchData.FirstName = $('#first-name').val();
 searchData.LastName = $('#last-name').val();   
 return JSON.stringify(searchData);
}

在控制器中添加可选参数 ID

    [HttpPost]
    public JsonResult Search(string ID)
    {
      //Request.Params["ID"] also will work
    }