C# 백엔드를 사용하여 extjs 그리드 pangel에 페이징 도구 모음을 구현하려고합니다 ... 그 방법에 대해 어떻게 시작해야합니까 ... 시작 및 제한을 사용하여 시도했지만 어떻게해야 잘 모르겠습니다. 공장. 누군가 내 눈금이 내 응용 프로그램을 느리게하고있는 모든 500 datas를 받고 있기 때문에 그리드에서 페이지 당 약 20 개의 레코드를 보낼 수있는 방법을 알려주십시오. 내 저장소에 json을 보내는 컨트롤러입니다.C# 그리드 페이징 및 ExtJS 4.1
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'
}
}
});
스티븐 도움에 감사드립니다. 나는 C#을 사용합니다. PHP에 대한 다양한 예제를 보았습니다. 그러나 C#으로 작업하는 방법에 대해 전혀 몰라요. 당신의 대답으로 어디서 시작해야할지 모르겠습니다. Ajax 호출에서 첫 번째와 마지막으로 전달할 수 있지만 upperBound 및 lowerBound의 목적은 무엇이며 'totalProperty'는 어떻게 계산됩니까? 어딘가에 작동 예제가 있습니다 – EagleFox
죄송합니다. 시작 및 제한 값이 표시되지 않았습니다. 지나가고, 상한선과 하한선은 어느 20 세트의 레코드를 취해야 하는지를 말하고있는 것입니다. 전달하는 시작 및 제한 값을 사용하여 lowerBound = start 및 upperBound = start + limit. 그 외에는 SQL 쿼리가 MsSQL에서 실행되며 20 개의 레코드 집합 만 제공한다고 생각합니다. 이 쿼리 {cmd.CommandText = "SELECT State, Capital FROM MYDBTABLE"}에서이 코드를 사용하면 코드가 원하는대로 작동한다고 생각합니다. 당신은 문자열로 쿼리를 구축하기 위해 저/상한을 연결해야합니다. –
이 페이징이 돌아 왔고 다시 나를 괴롭히기 시작했습니다 ... ... (... 해당 매개 변수가 extjs에서 전달되어야합니다 ... 여전히 첫 페이지에는 전체 데이터가 표시되고 두 번째 페이지에는 전체 데이터가 표시되지만 툴바 페이지 2를 말합니다 – EagleFox