我在我的 ASP.net Web 应用程序中实现 jqGrid,我不想使用 jqGrid 提供的内置过滤。所以,我想到了使用外部过滤。
我会有一个文本框。一旦用户输入一个值并单击按钮过滤器,我想重新加载网格。我正在使用服务器端分页,我必须进行服务器端过滤。
我有一些关于这个的帖子,但我找不到一个可靠的例子来证明这一点。
我也不知道如何在 C# 代码中接收过滤器值来进行过滤。
我在我的 ASP.net Web 应用程序中实现 jqGrid,我不想使用 jqGrid 提供的内置过滤。所以,我想到了使用外部过滤。
我会有一个文本框。一旦用户输入一个值并单击按钮过滤器,我想重新加载网格。我正在使用服务器端分页,我必须进行服务器端过滤。
我有一些关于这个的帖子,但我找不到一个可靠的例子来证明这一点。
我也不知道如何在 C# 代码中接收过滤器值来进行过滤。
您可以使用postData
jQGrid 中的参数来执行此操作,并将您自己的值传递给过滤和刷新网格
$(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
}