我在2个类似的页面中,代码基本相同,有小幅度的不同。
如下图
这是第一个页面,datalist分页显示正常。
第二个页面出问题了,直接跳转进入第2个页面,如果取消分页,datalist数据显示正常。
我加入datalist分页,进来后显示会空白
但是如果输入1,点击跳转到第一页会正常显示。
第2个页面代码跟第一个相同的,我copy的,怎么会出现这种情况。
大神帮忙分析下。。。
我觉得是一开始停留的页面有问题么?
9 个解决方案
代码如下、、
page.aspx
<asp:DataList ID="DataListHuoList" runat="server" width="510" cellspacing="0" cellpadding="0" BorderStyle="none">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "字段") %>
</ItemTemplate>
</asp:DataList>
<table width="510" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="font">
<asp:LinkButton ID="linkbtnone" runat="server" OnClick="linkbtnone_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="linkbtnpre" runat="server" OnClick="linkbtnpre_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="linkbtnnext" runat="server" OnClick="linkbtnnext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="linkbtnlast" runat="server" OnClick="linkbtnlast_Click">最后一页</asp:LinkButton>
<asp:Label ID="labcp" runat="server"></asp:Label>[<asp:Label ID="labpage" runat="server" Text="1"></asp:Label>/<asp:Label ID="labtp" runat="server"></asp:Label>]
<asp:Label ID="labgoto" runat="server" Text="转到:"></asp:Label>
<asp:TextBox ID="txtgo" runat="server" Height="15px" Width="30px"></asp:TextBox>页
<asp:Button ID="BtnGo" runat="server" Text="GO" Width="36px" OnClick="BtnGo_Click" />
</td>
</tr>
</table>
page.aspx.cs
public partial class huodong : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindHuoList(25);
}
}
//绑定
private void BindHuoList(int length)
{
DataSet ds = new DataSet();
string sql = "select * from Information ";
SqlCommand scd = new SqlCommand(sql, DbHelperSQL.conn);
SqlDataAdapter da = new SqlDataAdapter(scd);
da.Fill(ds, "Information");
DataTable dtHuoList = ds.Tables["Information"]; //获取数据
DataTable dtHuoList = ;//获取数据
string strLength;
for (int i = 0; i < dtHuoList.Rows.Count; i++)
{
strLength = dtHuoList.Rows[i]["article_title"].ToString();
if (strLength.Length > length)
{
dtHuoList.Rows[i]["article_title"] = (Object)strLength.Substring(0, length);
}
}
this.txtgo.Text = "";
int curpage = Convert.ToInt32(this.labpage.Text);
PagedDataSource ps = new PagedDataSource(); //定义PagedDataSource对象
ps.DataSource = dtHuoList.DefaultView; //取出数据到datatable中,赋给PagedDataSource对象
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 16; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码,PagedDataSource的CurrentPageIndex是从0开始
this.linkbtnone.Enabled = true;
this.linkbtnpre.Enabled = true;
this.linkbtnnext.Enabled = true;
this.linkbtnlast.Enabled = true;
if (curpage == 1)
{
this.linkbtnone.Enabled = false;
this.linkbtnpre.Enabled = false;
}
if (curpage == ps.PageCount)
{
this.linkbtnnext.Enabled = false;
this.linkbtnlast.Enabled = false;
}
this.labtp.Text = Convert.ToString(ps.PageCount); //显示分页数量
this.DataListHuoList.DataSource = ps; //绑定DataList控件
this.DataListHuoList.DataKeyField = "article_id";
this.DataListHuoList.DataBind();
//第一页
protected void linkbtnone_Click(object sender, EventArgs e)
{
this.labpage.Text = "1";
BindHuoList(25);
}
//上一页
protected void linkbtnpre_Click(object sender, EventArgs e)
{
this.labpage.Text = Convert.ToString(Convert.ToInt32(this.labpage.Text) - 1);
BindHuoList(25);
}
//下一页
protected void linkbtnnext_Click(object sender, EventArgs e)
{
this.labpage.Text = Convert.ToString(Convert.ToInt32(this.labpage.Text) + 1);
BindHuoList(25);
}
//最后一页
protected void linkbtnlast_Click(object sender, EventArgs e)
{
this.labpage.Text = this.labtp.Text;
BindHuoList(25);
}
//跳转按钮
protected void BtnGo_Click(object sender, EventArgs e)
{
this.labpage.Text = this.txtgo.Text;
BindHuoList(25);
}
}