【发布时间】:2017-08-10 03:40:19
【问题描述】:
我在我的 ASP.Net 应用程序中实现了一个 jQuery bootgrid,它使用 Generic Handler 填充。
我使用Generic Handler 填写bootgrid,如下所示:
$(function () {
var grid = $("#grid").bootgrid({
ajax: true,
ajaxSettings: {
method: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false
},
url: "/MyHandler.ashx",
rowCount: [10, 50, 75, 100, 200, -1]
});
}
这里是MyHandler.ashx 代码:
public class RolesHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/json";
context.Response.Write(GetData());
}
public bool IsReusable
{
get
{
return false;
}
}
public string GetData()
{
var result = string.Empty;
var con = new SqlConnection();
var cmd = new SqlCommand();
var dt = new DataTable();
string sSQL = @"SELECT Id, Name
FROM dbo.AspNetRoles;";
try
{
using (var connection = THF.Models.SQLConnectionManager.GetConnection())
{
using (var command = new SqlCommand(sSQL, connection))
{
connection.Open();
command.CommandTimeout = 0;
var da = new SqlDataAdapter(command);
da.Fill(dt);
}
}
var sNumRows = dt.Rows.Count.ToString();
var sDT = JsonConvert.SerializeObject(dt);
result = "{ \"current\": 1, \"rowCount\": 10, \"rows\": " + sDT + ", \"total\": " + sNumRows + " }";
}
catch (Exception ex)
{
}
finally
{
cmd.Dispose();
THF.Models.SQLConnectionManager.CloseConn(con);
}
return result;
}
}
基本上,在我以ajax 方式实现它之前,我的引导网格的所有重要功能都不再起作用了。具体来说,ordering、searching 和 pagination 功能根本无法正常工作,没有任何错误。
据我所知,通过一些研究。这是因为每次进行搜索短语或单击标题(用于排序)等时。bootgrid 都会执行ajax 调用。
关于如何修复这里的功能有什么想法吗?
【问题讨论】:
标签: asp.net json ajax generic-handler jquery-bootgrid