1

私はこの問題の解決策を1週間以上探していますが、見つかりませんでした。これが私の問題です。

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)
    {

    }
 }
4

0 に答える 0