c# 封装 jqgrid 表头条件搜索配合dapper实现
时间: 2023-10-15 21:04:03 浏览: 43
首先,你需要在C#中引用jQuery和jqGrid的库文件,然后在页面中添加一个jqGrid的表格。接着,你需要使用Dapper来查询数据库并将数据填充到jqGrid表格中。
以下是一个简单的示例:
1.在页面中添加一个jqGrid表格:
```html
<table id="myGrid"></table>
```
2.在C#代码中,使用Dapper查询数据并将结果填充到jqGrid表格中:
```csharp
using System.Data.SqlClient;
using Dapper;
public class MyController : Controller
{
private string connectionString = "Data Source=MyServer;Initial Catalog=MyDatabase;User ID=MyUser;Password=MyPassword";
public ActionResult Index()
{
return View();
}
public JsonResult GetData(string searchField, string searchString, string searchOper)
{
using (var connection = new SqlConnection(connectionString))
{
var query = "SELECT * FROM MyTable WHERE " + searchField + " " + searchOper + " @searchString";
var data = connection.Query(query, new { searchString = searchString });
return Json(data, JsonRequestBehavior.AllowGet);
}
}
}
```
3.在页面中使用jQuery来初始化jqGrid表格,并添加表头条件搜索:
```javascript
$(function () {
$("#myGrid").jqGrid({
url: "/MyController/GetData",
datatype: "json",
mtype: "GET",
colNames: ["ID", "Name", "Age"],
colModel: [
{ name: "ID", index: "ID", width: 50 },
{ name: "Name", index: "Name", width: 100 },
{ name: "Age", index: "Age", width: 50 }
],
rowNum: 10,
rowList: [10, 20, 30],
pager: "#myGridPager",
sortname: "ID",
sortorder: "asc",
viewrecords: true,
height: "auto",
caption: "My Grid",
postData: {
searchField: "",
searchString: "",
searchOper: "eq"
},
onSearch: function () {
var postData = $("#myGrid").jqGrid("getGridParam", "postData");
postData.searchField = $("#gs_myGrid").val();
postData.searchString = $("#myGrid").jqGrid("getGridParam", "searchString");
postData.searchOper = $("#myGrid").jqGrid("getGridParam", "searchOper");
}
});
$("#myGrid").jqGrid("navGrid", "#myGridPager", { edit: false, add: false, del: false });
$("#myGrid").jqGrid("filterToolbar", { searchOnEnter: false });
});
```
在这个示例中,我们使用了jqGrid的filterToolbar来添加表头条件搜索,使用了onSearch事件来获取搜索条件并将其添加到postData中,然后在C#代码中使用searchField、searchString和searchOper参数来构造SQL查询语句。
注意:这只是一个简单的示例,实际的实现可能需要更多的逻辑来处理不同的搜索条件和数据类型。