簡體   English   中英

C#網格分頁和ExtJS 4.1

[英]C# Grid Paging and ExtJS 4.1

我正在嘗試使用c#后端在extjs網格pangel上實現分頁工具欄...我該如何開始...我嘗試使用開始和限制,但是我不確定它是如何工作的。 有人可以幫我解決一下,如何在網格中每頁發送大約20條記錄,因為我的網格正在獲取所有500個數據,這也減慢了我的應用程序的速度,下面是我的控制器,它向我的商店發送json。

 public JsonResult getData(int start, int limit)
 {
   List<MyItem> items = new List<MyItem>();
   using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices1"].ConnectionString))
   {
     SqlCommand cmd = con.CreateCommand();
     cmd.CommandText = "SELECT State, Capital FROM MYDBTABLE";
     con.Open();
     SqlDataReader reader = cmd.ExecuteReader();
     while (reader.Read())
     {
       MyItem item = new MyItem();
       item.State = reader[0].ToString(); 
       item.Capital = reader[1].ToString(); 
       items.Add(item);
     }
     con.Close();

     return Json(new {  myTable = items }, JsonRequestBehavior.AllowGet);
   }
}

這是我的商店

this.store = Ext.create('Ext.data.JsonStore', {
        autoLoad: true,
        storeId: 'mystore1',
        pageSize: 20,
        fields: [
    { name: 'State' },
    { name: 'Capital' } 
    ],
        sorters: [
            {
                property: 'State',
                direct: 'ASC'
            }],
        scope: this,
        proxy: {
            type: 'ajax',
            scope: this,
            url: 'StateC/getData',
            autoLoad: { params: {
                start: 0,
                limit: 20
            }
            },
            reader: {
                type: 'json',
                root: 'myTable'
            }
        }
    });

我目前正在使用MySQL和PHP,因此肯定會在此方面檢查我的語法,但是一般邏輯是相似的,但是在MsSQL中查詢的語法有些模糊。 我建議使用此鏈接作為MsSQL推薦語法的入門:

http://www.codeguru.com/csharp/.net/net_data/article.php/c19611/Paging-in-SQL-Server-2005.htm

首先,您需要獲取ajax調用中extjs傳遞的參數:

int limit = Request.QueryString["limit"];
int page= Request.QueryString["page"];
int upperBound = limit * page;
int lowerBound = limit * (page - 1) + 1;

我認為對於您的查詢也應該解決類似這樣的問題:

SELECT * FROM (
        SELECT 
            ROW_NUMBER() OVER(ORDER BY person) AS rownum, 
            MYDBTABLE.State, 
            MYDBTABLE.Capital 
        FROM MYDBTABLE
    ) AS States
WHERE  States.rownum >= {lowerBound} AND States.rownum <= {upperBound}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM