Jquery aC,而不是ab:。但是,这看起来像是您应该对XML路径使用。但是它们都是真的,sql查询不是瓶颈。您可以添加response.d的值吗?您能描述一下如何调用loadGrid吗?@gaetanoM添加了@Behnam您能分享响应的实际值(1000行)吗?因

Jquery aC,而不是ab:。但是,这看起来像是您应该对XML路径使用。但是它们都是真的,sql查询不是瓶颈。您可以添加response.d的值吗?您能描述一下如何调用loadGrid吗?@gaetanoM添加了@Behnam您能分享响应的实际值(1000行)吗?因,jquery,html,sql,sql-server,ajax,Jquery,Html,Sql,Sql Server,Ajax,aC,而不是ab:。但是,这看起来像是您应该对XML路径使用。但是它们都是真的,sql查询不是瓶颈。您可以添加response.d的值吗?您能描述一下如何调用loadGrid吗?@gaetanoM添加了@Behnam您能分享响应的实际值(1000行)吗?因为它不可复制,我们现在不知道数据有多大。(您可以将数据放入笔()中并共享链接。) //client side code $(document).ready(function () { loadGrid(function () {


a
C
,而不是a
b
:。但是,这看起来像是您应该对XML路径使用
。但是它们都是真的,sql查询不是瓶颈。您可以添加response.d的值吗?您能描述一下如何调用loadGrid吗?@gaetanoM添加了@Behnam您能分享响应的实际值(1000行)吗?因为它不可复制,我们现在不知道数据有多大。(您可以将数据放入笔()中并共享链接。)
//client side code    
$(document).ready(function () {
    loadGrid(function () {
    $(".rowCount").val($(".tbody .tr:visible").length);
});

function loadGrid(callback) {
    $.ajax({
        type: "POST", url: "Ledger.aspx/LoadGrid",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            $(".tbody").html(response.d);   //response.d = '<div class='tr'> <div class='td colIdVchItm'>1</div>...</div>'
            callback();
        },
        failure: function (response) {
            ShowMessage(response.d);
        }
    });
}
//server side code
[WebMethod]
    public static string LoadGrid()
    {
        string q = @"select cast((select 'tr' as [@class],  
'td colIdVchItm' as [div/@class] , a.IdVchItm as [div], ' ',
'td colNo' as [div/@class] , a.No as [div], ' ',
'td colRef' as [div/@class] ,a.Ref as [div], ' ',
'td colSeq' as [div/@class] ,a.Seq as [div], ' ',
'td colDescr' as [div/@class] ,a.Descr as [div], ' ',
'td colDebit' as [div/@class] , cast(a.Debit as decimal(38,0)) as [div], ' ',
'td colCredit' as [div/@class] , cast(a.Credit as decimal(38,0)) as [div], ' ',
'td colBalance' as [div/@class] ,null as [div] , ' ',
'td colCur' as [div/@class] ,b.Title as [div], ' ',
'td colCurVal' as [div/@class] ,a.CurVal as [div], ' ',
'td colEffDate' as [div/@class] ,dbo.ShamsiDate(a.EffectiveDate) as [div] , ' '
from a inner join Currency as b on a.IdCur = b.IdCur order by a.vchdate, a.no
for xml path('div')) as nvarchar(max))";
        // this query returns every records as an html text. for example: 
        // <div class='tr'> <div class='td colIdVchItm'>1</div>...
        string res = "";
        SqlConnection con = new SqlConnection(DAL.conStr);
        SqlCommand com = new SqlCommand(q, con);
        con.Open();
        SqlDataReader rd = com.ExecuteReader();
        rd.Read();
        res = rd[0].ToString();
        con.Close();
        return res;
    }
 success: function (response) {
            $(".tbody").html('');
             $(".tbody").append(response.d);

            callback();
        }
    var offset = 200,page=0; 
   //client side code    
    $(document).ready(function () {
        loadGrid(function () {
        $(".rowCount").val($(".tbody .tr:visible").length);
    });

    function loadGrid(callback) {
        $.ajax({
            type: "POST", url: "Ledger.aspx/LoadGrid",
            data: {offset:offset,start:page},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
               if(response){

                $(".tbody").append(response.d);   //response.d = '<div class='tr'> <div class='td colIdVchItm'>1</div>...</div>'
                callback();
                 if($(".tbody .tr:visible").length % offset == 0){
                     page++;
                     loadGrid(callback);
                 } 
                }
            },
            failure: function (response) {
                ShowMessage(response.d);
            }
        });
    }