您的位置:首页 > 移动开发 > Objective-C

ListView +ObjectDataSource+DataPager

2015-09-28 13:55 435 查看
1

一、配置objectDataSource

---选择业务逻辑层的类

二、配置Select对应的方法,【必须是一个带两个整型参数的方法】,第一个参数表示要查看的第一条记录的前一条。比如我要查看的是第31-40条数据,那么第一个参数就是30。第二个参数每页最多能显示的记录条数pagesize。

这两个参数都是由分页控件DataPager来传递的。无需我们考虑。(再次强调:这两个参数都是DataPager分页控件自动给我们传递的,无需我们考虑。我们仅仅需要设置一下DataPager控件的PageSize属性就可以了,这个属性是定义每页显示多少条数据的。即:页大小)

between 30+1 and 30+1+pagesize

31-35

对于select对应的查询方法中的两个参数,在配置数据源的时候不需要指定。并且删除生成的参数代码。

三、配置ObjectDataSource启用分页:即将EnablePaging属性设置为true (EnablePaging=true)

四、设置objectDataSource的两个属性:

StartRowIndexParameterName="StartRow" 这个属性的的值必须与查询方法中的第一个参数的名字一样。(例如:既然ListView控件要分页显示,那么我们就会调用Bll层中的分页方法,这个参数的值就是分页方法的第一个参数,这个参数表示要查看的第一条记录的前一条)

MaximumRowsPrameterName="PageSize" 这里指定的参数就是select查询方法中的第二个参数(即:页大小,即:每页显示多少条数据)(必须与业务逻辑层中的查询方法的第二个参数名称一致)这个属性的的值必须与查询方法中的第一个参数的名字一样

如下:(注意:这个分页方法,第一个参数一定是要查询第几行的前一行,第二个参数是页大小)

/// <summary>
/// 分页查询
/// </summary>
/// <param name="StartRow">开始行的前一行</param>
/// <param name="PageSize">页大小</param>
/// <returns></returns>
/// 开是行的前一行的意思就是:假如我要查询31-40条数据,那么前一行就是30
public List<UserInfo> PagingPage(int StartRow, int PageSize)
{
    GetUserInfoCount();
    List<UserInfo> list = new List<UserInfo>();
    string sql = "select top " + PageSize + " * from (select ROW_NUMBER() OVER(ORDER BY id) as rowNumber,* from t_userinfo) as A where rowNumber>" + StartRow;

    DataTable dt = SqlHelper.ExecuteDataTable(sql, null);
    UserInfo u = null;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        u = new UserInfo();
        u.Id = int.Parse(dt.Rows[i][1].ToString());
        u.UserName = dt.Rows[i][2].ToString();
        u.Name = dt.Rows[i][3].ToString();
        u.Age = Convert.ToInt32(dt.Rows[i][4].ToString());

        list.Add(u);
    }

    return list;
}


在给DataSource配置数据源的时候





五、设置ObjectDataSource的SelectCountMethod="GetCount";设置该属性为业务逻辑层的一个方法,这个方法的作用就是查询出当前表中一共有多少条记录:select count(*) from aspx_students

/// <summary>
        /// 获取表的总条数
        /// </summary>
        /// <returns></returns>
        public int GetUserInfoCount()
        {
            string sql = "select count(*) from t_userinfo";

            object count = SqlHelper.ExecuteScalar(sql, null);
            return Convert.ToInt32(count); ;
        }


六、

-----添加一个ListView控件,设置数据源为ObjectDataSource

-----配置ListView,启用“编辑”、“删除”、“插入”,不要启用“分页”

七、

---添加一个DataPager控件。设置该控件的PagedControlID为对应的ListView

---设置该控件的PageSize属性,每页显示多少条。

---为该控件选择一个分页导航的样式。

八,使用DataPager控件为ListView控件分页的时候一定要注释掉(禁用掉)ObjectDataSource源中的以下代码

<%-- <SelectParameters>
      	<asp:Parameter Name="currentPage" Type="Int32" />
      	<asp:Parameter Name="pageSize" Type="Int32" />
      </SelectParameters>--%>


九:如果删除按钮无效果:那么可能需要设置ListView控件的DataKeyNames属性。这个属性的值就是 ListView控件绑定数据的Model 的主键

例如:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: