[英]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.