用dropdownlist 实现分页跳转 时如何保持当前 选择的item 不变啊现在可以实现按选中的页进行跳转, 但是 比如我选择跳转item为2  跳转过去后 原来选中的item 就变成1 了 请问如何保持原来选中的item 不变呢? 

解决方案 »

  1.   

    dropDownList1.Items.FindByValue(GridView1.CurrentPageIndex.ToString()).Selected=true;
      

  2.   

    定义一个静态的itemid=0dropdownlist选择改变时
    itemid=dropdownlist.selectvaluepage_load里
    if(itemid!=0)
    {
       dropdownlist.selectvalue=itemid;
    }
      

  3.   

            DropDownList ddl=new DropDownList ();
            ViewState.Add("page", 当前页码);
            //跳转
            ddl.ClearSelection();
            ddl.Items.FindByValue(ViewState["page"].ToString()).Selected = true;
      

  4.   

    ViewState是最简单的办法......你还可以用GET方式传参数....方法太多了...
      

  5.   


    我的代码是DropDownList 事件的代码是这样的
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {        string i = ((DropDownList)(sender)).SelectedValue;
            Int32 m = Convert.ToInt32(i);        DropDownList ddl = new DropDownList();
            ViewState.Add("ddl", i);
            //跳转
            ddl.ClearSelection();
            ddl.Items.FindByValue(ViewState["ddl"].ToString()).Selected = true;
            Response.Redirect(Request.Path + "?page=" + (m - 1));    }但是 这样改后出现错误
    请问应该如何修改,谢谢
      

  6.   

    翻页的时候不要再次绑定 dropDownList
    也就是说 只有在!IsPostBack的时候才绑定 dropDownList
      

  7.   

    你用的 是 Response.Redirect
    所以,在你的 dropDownList的绑定的后,根据 Request.QueryString["page"]来设定if(Request.QueryString["page"]!=null&&Request.QueryString["page"].ToString!="")
    {
     DropDownList1.SelectedValue = (string)(int.Parse(Request.QueryString["page"].ToString()) + 1);
    }
      

  8.   

    你看了我的帖子了吗?用ViewState保存啊,但是出现上面的问题
      

  9.   

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {        //DropDownList DropDownList1 = (DropDownList)Repeater1.FindControl("DropDownList1");
            //Response.Redirect(Request.Path + "?page=" + ((DropDownList)(sender)).SelectedValue);        string i = ((DropDownList)(sender)).SelectedValue;
            Int32 m = Convert.ToInt32(i);        DropDownList ddl = new DropDownList();
            ViewState.Add("ddl", i);
            //跳转
            ((DropDownList)(sender)).ClearSelection();
            //((DropDownList)(sender)).SelectedValue = ViewState["ddl"].ToString();   这样也不行
            ((DropDownList)(sender)).Items.FindByValue(ViewState["ddl"].ToString()).Selected = true; 
            Response.Redirect(Request.Path + "?page=" + (m - 1));    }上面的代码 运行没有错误 但是 仍然无法保持原理选中的item 
      

  10.   

    Response.Redirect 過去的頁面
    IsPostBack=true
    這個時候沒有ViewState!!!