我在页面上放了一个2个LinkButton和一个DataList。分页代码已经写出来了,在Page_Load的时候,DataList显示所有的信息;当点击LinkButton1时,就只显示公告;点击LinkButton2时,就只显示新闻。我在LinkButton里用SQL语言+DataList绑定可以实现显示不同数据的效果。现在问题出来了,当我点击下一页的时候,页面上的DataList和有绑定回了Page_Load时的总记录数了,而且分页的总数、记录集总数也变回了。也就是说我只能看到公告下的第一页,只要一点翻页按钮就到了Page_Load事件下的分页代码中去了。。求助,如何在进入“公告”管理下时,让分页代码正常运行???

解决方案 »

  1.   

    恕我愚昧,不懂您的意思。以下是我的PAGE_LOAD事件中的分页并显示所有结果的代码,那么在LinkButton的Click中应该如何写? {
    //***********************函数初始化定义**********************
    int PageSize = 5;
    int RecordCount;
    int PageCount;
    string Pagesql;
    DataSet ds=new DataSet();
    OleDbDataAdapter da;
    int ToPage = Convert.ToInt32(Request.QueryString["ToPage"]); OleDbConnection MyConn = FunctionClass.CreateConnection();
    MyConn.Open();
    //**********************技术分页代码**********************
    string Countsql = "select count(News_Id) from News";
    OleDbCommand MyComm = new OleDbCommand(Countsql,MyConn);
    RecordCount = Convert.ToInt32(MyComm.ExecuteScalar());//******取得记录总数
    MyConn.Close();
    //**********************!避免第一次点击分页控件无反应!**********************
    if (ToPage == Convert.ToInt32(null))
    {
    ToPage = 1;
    }
    //**********************计算总页数,当前页数**********************
    if ((RecordCount % PageSize) != 0)
    {
    PageCount=RecordCount / PageSize + 1;
    }
    else
    {
    PageCount=RecordCount / PageSize ;
    }
    if (ToPage > PageCount)
    {
    ToPage = PageCount ;
    }
    if (ToPage <= 1)
    {
    Pagesql = "select top "+PageSize+" * from News order by News_Id desc";
    }
    else
    {
    Pagesql = "select top "+PageSize+" * from News where News_Id not in (select top "+PageSize*(ToPage-1)+" News_Id from News order by News_Id desc) order by News_Id desc";
    }
    //**********************开始分页控件绑定**********************
    if (ToPage <= 1)
    {
    LinkPrev.Enabled = false;
    Linkhead.Enabled = false;
    CurrentPage.Text = "1";
    }
    else
    {
    LinkPrev.Enabled = true;
    LinkPrev.NavigateUrl = "?ToPage="+(ToPage-1);
    Linkhead.Enabled = true;
    Linkhead.NavigateUrl = "?ToPage=1";
    }
    if (ToPage >= PageCount)
    {
    LinkFoot.Enabled = false;
    LinkNext.Enabled = false;
    CurrentPage.Text = PageCount.ToString();
    }
    else
    {
    LinkFoot.Enabled = true;
    LinkFoot.NavigateUrl = "?ToPage=" + PageCount;
    LinkNext.Enabled = true;
    LinkNext.NavigateUrl = "?ToPage="+(ToPage+1);
    } //**********************Label控件绑定**********************
    TotalPage.Text = Convert.ToString(PageCount);
    CurrentPage.Text = Convert.ToString(ToPage);
    LbRecord.Text = RecordCount.ToString();
    LbPageRecord.Text = PageSize.ToString();
    //**********************数据绑定**********************
    da=new OleDbDataAdapter(Pagesql,MyConn);
    da.Fill(ds,"ShowPage"); Show1.DataSource=ds.Tables["ShowPage"].DefaultView;
    Show1.DataBind();
    }
      

  2.   

    你哪个变量都是一次赋值,回传的时候就没有啦,回到默认值啦,,用ViewState保存值,不过,为什么要这么麻烦,有分页控件怎么不用,aspnetpager,很好用的