我用一下代码实现翻页,但是却出现一种现象就是一会儿能翻页一会儿不能翻页
比如我点击下一页 这次不能翻页 但我关了 重新点击下一页 也许就能翻页了 我想问这到底是这么回事
是我代码问题还是我系统问题
如果是我代码 请指出错误在哪
如果是我系统问题 请说下系统到底哪部分影响了他的这项翻页功能 谢谢
//datalist翻页功能
public void tiger()
{
PagedDataSource pd; //用来翻页的
Dataset rs=new Dataset();
data11.conn1(); //连接数据库
rs=data11.adapter1("select * from message order by id desc"); //设置查询内容 并获取内容
pd = new PagedDataSource();
pd.AllowPaging = true;
pd.CurrentPageIndex = int.Parse(this.Label2.Text) - 1;
pd.PageSize = 2;
pd.DataSource = rs.Tables[0].DefaultView;
this.DataList1.DataSource = pd;
this.DataBind();
//如果不加入这些判断的话,显示页面正常,但读出的数据会有问题
if (rs.Tables[0].Rows.Count % 2 == 0)
{
if (!pd.IsLastPage)
{
this.Label3.Text = Convert.ToString(Convert.ToInt32(pd.Count.ToString()) + 1);
}
else
{
this.Label3.Text = Label2.Text;
}
}
else
{
if (!pd.IsLastPage)
{
this.Label3.Text = Convert.ToString(Convert.ToInt32(pd.Count.ToString()) + 2);
}
else
{
this.Label3.Text = Label2.Text;
}
}
data11.rsclose();
data11.connclose();
}
比如我点击下一页 这次不能翻页 但我关了 重新点击下一页 也许就能翻页了 我想问这到底是这么回事
是我代码问题还是我系统问题
如果是我代码 请指出错误在哪
如果是我系统问题 请说下系统到底哪部分影响了他的这项翻页功能 谢谢
//datalist翻页功能
public void tiger()
{
PagedDataSource pd; //用来翻页的
Dataset rs=new Dataset();
data11.conn1(); //连接数据库
rs=data11.adapter1("select * from message order by id desc"); //设置查询内容 并获取内容
pd = new PagedDataSource();
pd.AllowPaging = true;
pd.CurrentPageIndex = int.Parse(this.Label2.Text) - 1;
pd.PageSize = 2;
pd.DataSource = rs.Tables[0].DefaultView;
this.DataList1.DataSource = pd;
this.DataBind();
//如果不加入这些判断的话,显示页面正常,但读出的数据会有问题
if (rs.Tables[0].Rows.Count % 2 == 0)
{
if (!pd.IsLastPage)
{
this.Label3.Text = Convert.ToString(Convert.ToInt32(pd.Count.ToString()) + 1);
}
else
{
this.Label3.Text = Label2.Text;
}
}
else
{
if (!pd.IsLastPage)
{
this.Label3.Text = Convert.ToString(Convert.ToInt32(pd.Count.ToString()) + 2);
}
else
{
this.Label3.Text = Label2.Text;
}
}
data11.rsclose();
data11.connclose();
}
你翻页的页码是通过Label2.Text来获取的,但你翻页后没有把Label2.Text加1啊
Label2.Text有进行加1
上面那个只是处理函数
Label2.Text处理:
//首页
protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = "1";
tiger();
} //上一页
protected void Button2_Click(object sender, EventArgs e)
{
try
{
int num = Convert.ToInt32(Label2.Text) - 1;
Label2.Text = num.ToString();
tiger();
}
catch
{
Label2.Text = "1";
tiger();
}
} //下一页
protected void Button3_Click(object sender, EventArgs e)
{
try
{
int labe2 = Convert.ToInt32(Label2.Text);
int labe3 = Convert.ToInt32(Label3.Text);
if (labe2 >= labe3)
{
Label2.Text = Label3.Text;
tiger();
}
else
{
int num = Convert.ToInt32(Label2.Text) + 1;
Label2.Text = num.ToString();
tiger();
}
}
catch
{
Label2.Text = Label3.Text;
tiger();
} } //最后一页
protected void Button4_Click(object sender, EventArgs e)
{
Label2.Text = Label3.Text;
tiger();
}
回复2楼的 能不能指出我的那样写错在哪
我就是看网上别人datalist也是这样写的 所以才跟着写的
你的页数算的不对啊,怎么直接用记录数加1?
这句是实现指定页数的,但是你好像没有什么代码使得label2进行更变,使得CurrentPageIndex为同一值。
不知对不对。
没看懂你说什么。
label3是总页数的显示
或者参考petshop4.0里面,有个datalisth分页的效果