void PageBind()
{
ListItem li ;
int PageNum = dgarticle.PageCount;
for(int i=1;i<= PageNum;i++)
{
li = new ListItem();
li.Text  = "第"+ i.ToString() +"页";
li.Value = i.ToString();
ddlPage.Items.Add(li);
}
} void ListBind()
{
int cid = Int32.Parse(Request["cid"].ToString()) ;
string schStr = this.tbSch.Text.Trim();
string sqlStr = "";
if(schStr !="")
{
sqlStr = "SELECT * FROM NDetails WHERE Title like'%"+ schStr +"%'AND Cid= "+cid ;

}
else
{
sqlStr = "SELECT * FROM NDetails WHERE Cid= "+cid ;
}
DataSet ds = conn.ExecuteQuery(sqlStr,"artlist");
dgarticle.DataSource = ds.Tables["artlist"];
dgarticle.DataBind() ;
ShowStatsPage();
PageBind(); }
上述方法不行,因为我是每绑定一次,向下拉列表中添加选项,最后越来越多的重复页码

解决方案 »

  1.   

    在方法void PageBind()中的for循环上面加一句ddlPage.Items.Clear(),
    每绑定一次就先将原来的列表中的项目清空,
    然后再重新添加Listitem
      

  2.   

    也可以放在!Page.IsPostBack中。
    当然,用ddlPage.Items.Clear()是个常用的方法。
      

  3.   

    OK,这个问题已解决啊!但是我要下列拉表默认项为当前页,怎么解决啊?
    ddlPage.SelectedValue = dgarticle.CurrentPageIndex.ToString();这句不行啊