string[] array=new string [pagecount];
            int j;
   for(int i=0;i<pagecount;i++)
   {       j=i+1;
  array[i]=j.ToString ();
    }

    int currentpage;
    if (Request.QueryString["page"] != null)
{ currentpage=Convert.ToInt32(Request.QueryString["page"]);
  if (currentpage>pagecount)
  currentpage=pagecount;
      if(currentpage<1)
  currentpage=1;
          }
         else
           {
             currentpage=1;
           }
         //下面的代码怎写
         ddlpage.DataSource=array;
         ddlpage.DataBind ();
         //ddlpage.Items.FindByText (currentpage.ToString ()).Selected =true;
问题:如我输入第三页,则ddl控件所选择的项应为3
可是上面的代码不管输入何值,都是默认选项目1
向高手请教,怎样写才得到我想要的结果。
谢谢

解决方案 »

  1.   

    ddlpage.Items.FindByText (currentpage.ToString ()).Selected =true
    改为ddlpage.Items.FindByValue(currentpage.ToString ()).Selected =true
      

  2.   

    而且不能用databind(),因为它没有datafield和datavalue
    你必须做个循环,将ddlpage的text和value分别赋值,再用
    ddlpage.Items.FindByValue(currentpage.ToString ()).Selected =true
      

  3.   

    应该是在Page_Load()里的要使用 if (!Page.IsPostBack)里绑定列表框数据
      

  4.   

    //下面的代码怎写
             ddlpage.DataSource=array;
             ddlpage.DataBind ();
             //ddlpage.Items.FindByText (currentpage.ToString ()).Selected =true;
    for(int i=0;i<arrary.Length;i++)
    {
    ddlpage.Items.Add(new ListItem(arrary[i]));
    }
    if(ddlpage.Items.FindByValue(currentpage.ToString()) != null)
    {
    ddlpage.Items.FindByValue(currentpage.ToString()).Selected =true;
    }
      

  5.   

    ddlpage.SelectedIndex = currentpage;