c# 封装 jqgrid 表头条件搜索
时间: 2023-07-25 17:31:23 浏览: 154
jqGrid搜索
4星 · 用户满意度95%
在 C# 中封装 jqGrid 表头条件搜索,可以使用 jQuery 的 AJAX 功能向后端发送请求并获取数据,然后使用 JSON 序列化和反序列化来处理数据。以下是一个简单的示例:
首先,在前端页面中,你需要定义一个 jqGrid 表格,并且在表头中添加搜索框和搜索按钮。这里假设搜索框的 ID 为 `searchInput`,搜索按钮的 ID 为 `searchButton`,表格的 ID 为 `grid`:
``` html
<table id="grid"></table>
```
``` javascript
$("#grid").jqGrid({
url: "/api/getData",
datatype: "json",
colModel: [
{ name: "id", index: "id", sorttype: "int" },
{ name: "name", index: "name" },
{ name: "age", index: "age", sorttype: "int" }
],
// 其他选项...
caption: "条件搜索",
postData: { searchField: "", searchString: "", searchOper: "" },
toolbar: [true, "top"],
onToolbarClick: function(toolbarButton) {
if (toolbarButton == "search") {
var searchField = $("#gs_" + $("#grid").jqGrid("getGridParam", "searchField")).attr("name");
var searchString = $("#gs_" + $("#grid").jqGrid("getGridParam", "searchField")).val();
var searchOper = $("#grid").jqGrid("getGridParam", "searchOper");
$("#grid").jqGrid("setGridParam", {
postData: { searchField: searchField, searchString: searchString, searchOper: searchOper },
page: 1
}).trigger("reloadGrid");
}
}
});
```
接下来,在 C# 后端中,你需要处理表头条件搜索请求,并返回符合搜索条件的数据。这里假设你使用 ASP.NET Web API 2 来处理请求,你可以这样编写控制器方法:
``` csharp
public IHttpActionResult GetData(string searchField, string searchString, string searchOper)
{
var data = GetData(); // 获取原始数据
if (!string.IsNullOrEmpty(searchField) && !string.IsNullOrEmpty(searchString) && !string.IsNullOrEmpty(searchOper))
{
switch (searchOper)
{
case "eq":
data = data.Where(d => d[searchField] == searchString);
break;
case "ne":
data = data.Where(d => d[searchField] != searchString);
break;
case "lt":
data = data.Where(d => Convert.ToInt32(d[searchField]) < Convert.ToInt32(searchString));
break;
case "gt":
data = data.Where(d => Convert.ToInt32(d[searchField]) > Convert.ToInt32(searchString));
break;
case "le":
data = data.Where(d => Convert.ToInt32(d[searchField]) <= Convert.ToInt32(searchString));
break;
case "ge":
data = data.Where(d => Convert.ToInt32(d[searchField]) >= Convert.ToInt32(searchString));
break;
case "bw":
data = data.Where(d => d[searchField].StartsWith(searchString));
break;
case "ew":
data = data.Where(d => d[searchField].EndsWith(searchString));
break;
case "cn":
data = data.Where(d => d[searchField].Contains(searchString));
break;
}
}
return Json(data); // 返回 JSON 格式的数据
}
```
在上面的代码中,`GetData` 方法首先从数据源中获取原始数据,然后根据搜索条件进行筛选,找出符合搜索条件的数据。最后,将筛选后的数据以 JSON 格式返回给前端。
需要注意的是,这里的 `GetData` 方法需要根据你的具体业务逻辑来实现,它可以从数据库、文件、缓存等数据源中获取数据。同时,需要根据 jqGrid 的搜索操作符(`searchOper`)来编写相应的筛选条件。在上面的示例中,我列举了一些常见的搜索操作符和对应的筛选条件。
阅读全文