我正在寻找这个问题的解决方案一个多星期,但我找不到。这是我的问题
我们都知道通过 Jquery 中的 datatables 插件访问 ajax 数据分页的基本方法。在此示例中,检索所有需要的数据并在浏览器内存中完成分页。我不需要这样。由于数据量巨大,我面临着性能问题,因此我们需要一种更复杂的方法。这是每个页面索引更改的单独 ajax 调用。
我已阅读此链接,该链接适用于 php,因此对我没有用。
我读了这个基于 MVC 的链接,所以对我来说再次没有工作。
这是我的代码,所以我该如何修改我的代码
在 A.aspx 页面上
function showData(P1,P2) {
$.ajax({
type: 'POST',
url: 'A.aspx/GetDataList',
data: "{'P1':'" + P1+ "','P2':'" + P2+ "'}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {
//make string of data here
$('#example').html(table).dataTable();
}
现在在 A.aspx.cs
[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static List<myclass> GetDataList(string P1, string P2)
{
//make object of city class
myclass cl = new myclass();
cl.what = P1;
cl.where = P2;
return cl.GetDataList1();
}
这是我的课堂功能
public List<mycls> GetDataList1()
{
try
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand oCmd = db.GetStoredProcCommand("sp");
db.AddInParameter(oCmd, "@a", DbType.String, this.what);
db.AddInParameter(oCmd, "@b", DbType.String, this.where);
DataSet dsResult = db.ExecuteDataSet(oCmd);
var query = from o in dsResult.Tables[0].AsEnumerable()
select new mycls
{
ID = o.Field<int>("ID"),
Name= o.Field<string>("Name")
};
List<mycls> lstDisplay = new List<mycls>();
lstDisplay.AddRange(query);
return lstDisplay;
}
catch (Exception ex)
{
}
}