我在2个类似的页面中,代码基本相同,有小幅度的不同。
如下图
这是第一个页面,datalist分页显示正常。第二个页面出问题了,直接跳转进入第2个页面,如果取消分页,datalist数据显示正常。
我加入datalist分页,进来后显示会空白
但是如果输入1,点击跳转到第一页会正常显示。第2个页面代码跟第一个相同的,我copy的,怎么会出现这种情况。
大神帮忙分析下我觉得是一开始停留的页面有问题么?

解决方案 »

  1.   

    检查一下第二个页面的pageload
      

  2.   

    代码如下、、
    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);    }}
      

  3.   

     protected void Page_Load(object sender, EventArgs e)
        {
            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刷新页面的
      

  4.   

    session里不是放的是共用的数据吗?
    相当于是静态的。翻页有影响吧。
    asp.net的好久没用快忘了
      

  5.   

    我用session传递的
    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
      

  6.   


    我发现问题所在了,page_load中,session传递要放在is postback之前。。先传递完。然后再   if (!IsPostBack)
           {
               BindHuoList(25);   
                 
           }
           
    否则传递过来的参数,因为我用此参数调取数据库数据,所以如果不先传,后面的datalist为空白。怪不得