我写的帖子的页面 实现分页 每页显示三个回复 还循环的 弄出楼层 (1喽2喽3喽) 我在2008(3.5)上一样的代码 在2010(4.0)上为什么老报错呢?? (索引超出范围。必须为非负值并小于集合大小。)
private PagedDataSource pds = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
Server.Execute("panding.aspx");
if(!IsPostBack)
{
this.labusername.Text = Session["name"].ToString();
//发表人的得到
this.radUser.Text = Session["name"].ToString();
//第一次为第一页
this.labDangPage.Text = "1";
}
Bind();
}
//这是整个绑定数据分页和几楼几楼的方法
private void Bind()
{
pds.DataSource = huifuleaveManager.getHuifu(Request.QueryString["argus"]).Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 3;
pds.CurrentPageIndex = Convert.ToInt32(this.labDangPage.Text) - 1;
if (pds.IsFirstPage)
{
this.lkbFirst.Enabled = false;
this.lkbBack.Enabled = false;
this.lkbNext.Enabled = true;
this.lkbLast.Enabled = true;
}
else if (pds.IsLastPage)
{
this.lkbFirst.Enabled = true;
this.lkbBack.Enabled = true;
this.lkbNext.Enabled = false;
this.lkbLast.Enabled = false;
}
else
{
this.lkbFirst.Enabled = true;
this.lkbBack.Enabled = true;
this.lkbNext.Enabled = true;
this.lkbLast.Enabled = true;
}
this.labSumPage.Text = pds.PageCount.ToString();
this.DataList1.DataSource = pds;
this.DataList1.DataBind(); //楼层
for (int q = 0; q < pds.PageSize; q++)
{
int d1 = Convert.ToInt32(this.labDangPage.Text) - 1;
int d2 = d1 * 3;
int d3 = q + 1;
int d = d3 + d2; //我刚是这几个表达式在一块的 我怕他出错 就分开了
(this.DataList1.Items[q].FindControl("labLou") as Label).Text = d.ToString() + "楼"; //就点击下一页的时候 这句报这个错(索引超出范围。必须为非负值并小于集合大小。)
}
}
//这是点击下一页的事件
protected void lkbNext_Click(object sender, EventArgs e)
{
this.labDangPage.Text = (Convert.ToInt32(this.labDangPage.Text) + 1).ToString();
Bind();
}
我就很郁闷了 为什么一样样的代码 在2010上就报错
private PagedDataSource pds = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
Server.Execute("panding.aspx");
if(!IsPostBack)
{
this.labusername.Text = Session["name"].ToString();
//发表人的得到
this.radUser.Text = Session["name"].ToString();
//第一次为第一页
this.labDangPage.Text = "1";
}
Bind();
}
//这是整个绑定数据分页和几楼几楼的方法
private void Bind()
{
pds.DataSource = huifuleaveManager.getHuifu(Request.QueryString["argus"]).Tables[0].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 3;
pds.CurrentPageIndex = Convert.ToInt32(this.labDangPage.Text) - 1;
if (pds.IsFirstPage)
{
this.lkbFirst.Enabled = false;
this.lkbBack.Enabled = false;
this.lkbNext.Enabled = true;
this.lkbLast.Enabled = true;
}
else if (pds.IsLastPage)
{
this.lkbFirst.Enabled = true;
this.lkbBack.Enabled = true;
this.lkbNext.Enabled = false;
this.lkbLast.Enabled = false;
}
else
{
this.lkbFirst.Enabled = true;
this.lkbBack.Enabled = true;
this.lkbNext.Enabled = true;
this.lkbLast.Enabled = true;
}
this.labSumPage.Text = pds.PageCount.ToString();
this.DataList1.DataSource = pds;
this.DataList1.DataBind(); //楼层
for (int q = 0; q < pds.PageSize; q++)
{
int d1 = Convert.ToInt32(this.labDangPage.Text) - 1;
int d2 = d1 * 3;
int d3 = q + 1;
int d = d3 + d2; //我刚是这几个表达式在一块的 我怕他出错 就分开了
(this.DataList1.Items[q].FindControl("labLou") as Label).Text = d.ToString() + "楼"; //就点击下一页的时候 这句报这个错(索引超出范围。必须为非负值并小于集合大小。)
}
}
//这是点击下一页的事件
protected void lkbNext_Click(object sender, EventArgs e)
{
this.labDangPage.Text = (Convert.ToInt32(this.labDangPage.Text) + 1).ToString();
Bind();
}
我就很郁闷了 为什么一样样的代码 在2010上就报错
解决方案 »
- 实例化一个WebChartControl控件怎么放到容器里去比如DIV
- ASP.NET通过SqlCommand、SqlDataReader 读取数据库问题
- 首页如何做时钟显示服务器系统时间
- 实现treeview控件读数据库动态生成树的代码
- 编写好的程序 为什么有时候能正常显示 有时候却是无法找到该页?
- ASP.NET 中用代码设置Excel的样式?
- ASP.NET有没有类似ASP的模版下载
- 在数据库中的值是0 or 1,如何在gridview中使其变为“未读”和“已读”
- asp.net 中如何做到对一个页面的插入向asp中include一样
- xmlhttp.Open("POST",zsURL,false)會用POST請進.....
- 未预编译文件
- 哪位帮忙把图片给修改一下啊,很简单的,100分奉上!!
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
void bind()
{
int curpage = Convert.ToInt32(this.Label1.Text);
PagedDataSource ps = new PagedDataSource();
pagebind(ps);
ps.AllowPaging = true;
ps.PageSize = 5;
ps.CurrentPageIndex = curpage -1;
this.LinkButton1.Enabled = true;
this.LinkButton2.Enabled = true;
this.LinkButton3.Enabled = true;
this.LinkButton4.Enabled = true;
if (curpage == 1)
{
this.LinkButton1.Enabled = false;
this.LinkButton2.Enabled = false;
}
if (curpage == ps.PageCount)
{
this.LinkButton3.Enabled = false;
this.LinkButton4.Enabled = false;
}
this.Label2.Text = ps.PageCount.ToString();
this.DataList1.DataSource = ps;
this.DataList1.DataBind();
}
void pagebind(PagedDataSource pd)
{
string strcon="server=.;database=pubs;uid=sa;pwd=sa";
SqlConnection cn = new SqlConnection(strcon);
SqlDataAdapter da = new SqlDataAdapter("select title_id,title,price from titles", cn);
DataSet ds = new DataSet();
da.Fill(ds, "titles");
pd.DataSource = ds.Tables["titles"].DefaultView;
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
this.Label1.Text = "1";
bind();
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
this.Label1.Text = (Convert.ToInt32(this.Label1.Text) - 1).ToString();
bind();
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
this.Label1.Text=(Convert.ToInt32(this.Label1.Text)+1).ToString();
bind();
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
this.Label1.Text = Label2.Text;
bind();
}