当前位置:编程学习 > JAVA >>

不显示删除回复 显示所有回复 显示星级回复 显示得分回复 收藏 关于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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,