我在2个类似的页面中,代码基本相同,有小幅度的不同。
如下图
这是第一个页面,datalist分页显示正常。第二个页面出问题了,直接跳转进入第2个页面,如果取消分页,datalist数据显示正常。
我加入datalist分页,进来后显示会空白
但是如果输入1,点击跳转到第一页会正常显示。第2个页面代码跟第一个相同的,我copy的,怎么会出现这种情况。
大神帮忙分析下我觉得是一开始停留的页面有问题么?
如下图
这是第一个页面,datalist分页显示正常。第二个页面出问题了,直接跳转进入第2个页面,如果取消分页,datalist数据显示正常。
我加入datalist分页,进来后显示会空白
但是如果输入1,点击跳转到第一页会正常显示。第2个页面代码跟第一个相同的,我copy的,怎么会出现这种情况。
大神帮忙分析下我觉得是一开始停留的页面有问题么?
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.cspublic 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); }}
{
TextBox2.Focus();
if (!IsPostBack)
{
BindHuoList(25);
}
lbl_title1.Text = Session["title"].ToString();
lbl_com_cn.Text = Session["com_cn"].ToString();
lbl_name.Text = Session["name"].ToString();
lbl_consult.Text = Session["consult"].ToString();
string sql = @"server=xxx;database=sx;user id=sa;password=xxx1;";
string ssSql = " update consult set condition = '未回答' update consult set condition = '已回答' where reply is not null ";
SqlConnection connn = new SqlConnection();
connn.ConnectionString = sql;
SqlCommand cmdd = new SqlCommand();
cmdd.CommandText = ssSql;
cmdd.Connection = connn;
connn.Open();
cmdd.ExecuteNonQuery();
connn.Close();
}
之前第一个页面很干净,没session和后面那段update刷新页面的
相当于是静态的。翻页有影响吧。
asp.net的好久没用快忘了
lbl_title1.Text = Session["title"].ToString();
lbl_com_cn.Text = Session["com_cn"].ToString();sql语句string sSql2 = "select id,Title,Date,condition,appraise from consult where Title = '"+ lbl_title1.Text +"' and company ='"+lbl_com_cn.Text+"' order by Date desc"; 用传递来的参数,调取sql里的数据。是不是不用能session
我发现问题所在了,page_load中,session传递要放在is postback之前。。先传递完。然后再 if (!IsPostBack)
{
BindHuoList(25);
}
否则传递过来的参数,因为我用此参数调取数据库数据,所以如果不先传,后面的datalist为空白。怪不得