repeater分页
//Repeater分页控制显示方法
public void contrlRepeater(int userId)
{
string connectionString = ConfigurationManager.ConnectionStrings["db_health"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
string sql = "select * from health_user_followup_content where user_id=" + userId + "";
SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
sda.Fill(ds,"FollowContent");
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["FollowContent"].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 5;
pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1;
rpUserList.DataSource = pds;
LabCountPage.Text = pds.PageCount.ToString();
labPage.Text = (pds.CurrentPageIndex + 1).ToString();
this.lbtnpritPage.Enabled = true;
this.lbtnFirstPage.Enabled = true;
this.lbtnNextPage.Enabled = true;
this.lbtnDownPage.Enabled = true;
if (pds.CurrentPageIndex < 1)
{
this.lbtnpritPage.Enabled = false;
this.lbtnFirstPage.Enabled = false;
}
if (pds.CurrentPageIndex == pds.PageCount - 1)
{
this.lbtnNextPage.Enabled = false;
this.lbtnDownPage.Enabled = false;
}
rpUserList.DataBind();
}
pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1;————刚点击进入页面时,为什么我这句会提示:”输入字符串的格式不正确”
------解决方案--------------------你这个方法是在 Load事件么?
在页面加载的时候控制还未生成!
this.labPage还未被实例化
好好调试看看this.labPage是什么状态。
------解决方案--------------------你没发现问题么?
如:contrlRepeater(userId);
this.labPage.Text = "1";
改
this.labPage.Text = "1";
contrlRepeater(userId);
//this.labPage.Text = "1"; 确实意义已经不大了。
pds.CurrentPageIndex =(this.labPage.Text==null?1:("".Equals(this.labPage.Text)?1: Convert.ToInt32(this.labPage.Text))) - 1;
你有调试下这句话么.
编程要有严谨性.
要不你以后编写代码会很吃力的。
------解决方案--------------------调试一下 看这个的转换结果是什么 Convert.ToInt32(labPage.Text) - 1;
------解决方案--------------------看你的代码思路不是很清晰。
//直接传页码 在第一次加载时 this.labPage.Text = "1";
public void contrlRepeater(int userId,int page)
pds.CurrentPageIndex =page-1;
//有想法就自己写个分页控件, 封装所有分页属性。 在项目才能得共用复用。