不显示删除回复 显示所有回复 显示星级回复 显示得分回复 收藏 关于extjs结合.net实现gridpanel动态分页,却只能显示第一页的问题
昨天根据网上的例子写了一个动态分页的程序,可是别人的示例都可以翻页我的却不行,前台没问题,那就应该是后台的问题,可是前台和后台交互实现分页的原理不清楚,也没有人详细的讲过,所以就提问了,我的程序的效果如下图:显然下一页的按钮不可用,但是总记录有9条,第一页只有8条,按理说应该是分页的,而且我改成每页3条,仍然不分页。
声明一下,产生的json数据是没问题的。第一页的数据也是没问题的。
下面贴一下代码,首先是前台:
var mystore = new Ext.data.JsonStore({
root: "data",
totalProperty: "totalCount",
autoload:"true",
proxy: new Ext.data.HttpProxy({
url: "DealRequest.aspx"
}),
fields: [{ name: "userName" }, { name: "name" }, { name: "inner_id" }, { name: "disable" }, { name: "part"}]
});
var checkBoxSelMod = new Ext.grid.CheckboxSelectionModel();
var grid = new Ext.grid.GridPanel({
autoHeight: true,
selModel: checkBoxSelMod,
bbar: new Ext.PagingToolbar({ store: mystore,
PageSize: 8,
displayMsg: '显示第 {0} 条到第 {1} 条记录,一共 {2} 条记录',
displayInfo: true
}),
columns: [checkBoxSelMod,
new Ext.grid.RowNumberer(),
{ header: "用户名", dataIndex: "userName" },
{ header: "姓名", dataIndex: "name" },
{ header: "内部人员编号", dataIndex: "inner_id" },
{ header: "是否禁用", dataIndex: "disable" },
{ header: "拥有角色", dataIndex: "part"}],
store: mystore,
autoExpandColumn: 2
});
mystore.load({ params: { start: 0, limit: 8} });
grid.render(Ext.getBody());
DealRequest.aspx中的代码:
public partial class DealRequest : System.Web.UI.Page
{
DbOpera db = new DbOpera();
protected void Page_Load(object sender, EventArgs e)
{
int start = Convert.ToInt32(Request["start"].ToString());
int limit = Convert.ToInt32(Request["limit"].ToString());
JsonHelper jsonHelp = new JsonHelper();
int TotalRecords = 0;
DataSet DSet = GetData(start, limit, out TotalRecords); // 获取数据
jsonHelp.totlalCount = TotalRecords;// 记录总数
if (DSet != null)
{
DataTable DTable = DSet.Tables[0];
if (start + limit > TotalRecords)
limit = TotalRecords;
for (int i = 0; i < limit; i++)
{
jsonHelp.AddItem("userName", DTable.Rows[i]["UserName"].ToString());
jsonHelp.AddItem("name", DTable.Rows[i]["Name"].ToString());
jsonHelp.AddItem("inner_id", DTable.Rows[i]["In_Id"].ToString());
jsonHelp.AddItem("disable", DTable.Rows[i]["Disable"].ToString());
jsonHelp.AddItem("part", DTable.Rows[i]["Part"].ToString());
jsonHelp.ItemOk();
}
}
Response.Write(jsonHelp.ToString()); // 输出JSON代码
Response.End();
}
public DataSet GetData(int start, int limit, out int TotalRecords)
{
db.connectDB();
DataSet DSet = new DataSet();
String sql = "select * from InnerUserT";
db.QueryOpera(sql,DSet);
TotalRecords = Convert.ToInt32(DSet.Tables[0].Rows.Count);
if (TotalRecords < 1) return null; // 没有记录
return DSet;
}
}
数据库操作类中的一个查询函数:
public void QueryOpera(String sql,DataSet ds)
{
SqlDataAdapter _Adapter = new SqlDataAdapter(sql, conn);
_Adapter.Fill(ds);
}
数据库中的记录截图:
extjs
补充:Java , Java EE