请问我这个功能怎么实现呢:
我想通过下拉表单的值通过自动回送重定向发送页码,然后page load中获取,但是,DrowdownList的值又回到初始值了。。请问怎么才可以保持dropdownlist的值是选中的值呢?  protected void Page_Load(object sender, EventArgs e)
    {
       
        PageIndex = Convert.ToInt32(Request.QueryString["pagenumber"]);
        List<User> L = new List<User>();
        L.Add(new User());
        L.Add(new User());
        L.Add(new User()); L.Add(new User()); L.Add(new User()); L.Add(new User());
                GridView1.DataSource = L;
        GridView1.PageIndex=PageIndex;
        GridView1.DataBind();

  protected void PageList_SelectedIndexChanged(object sender, EventArgs e)
    {
        
        
            Response.Redirect(Request.Url.AbsolutePath + "?pagenumber=" + (Convert.ToInt32(PageList.SelectedItem.Value) - 1));
        
     
    }
请指教!~~谢谢

解决方案 »

  1.   

    在 GridView1.DataBind();这句的
    后面给DropDownList赋值SelectedValue,应该是这个属性
      

  2.   

    如果你需要维系状态值,以回发的思路编程,而不是Redirect。
      

  3.   

    但是我要在dropdownlist的changed事件中回发哦。。怎么实现呢?
      

  4.   

    在page_load中
     Bind();在Bind()中 绑定数据源。
    定义一个全局变量接收selectedvalue值,在change事件中重新绑下
      

  5.   

    dropdownlist 如果在pageload在绑定的话  添加个 !ispostback新群DotNet Programmer 群号112850311
    欢迎DotNet程序员的加入,来吧,我们共同打造一个好的学习交流场所,我们真诚欢迎您的加入。
      

  6.   


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) {
                if (Request.QueryString["pageindex"] != null)
                {
                    page = Convert.ToInt32(Request.QueryString["pageindex"]);
                }
                FillUser();
            }
        }
        /// <summary>
        /// 绑定数据
        /// </summary>
        private void FillUser()
        {
            if (Request.QueryString["trem"] != null && Request.QueryString["content"] != null)
            {
                ddlType.SelectedValue = Request.QueryString["trem"].ToString();
                txtSearch.Text = Request.QueryString["content"].ToString();
            }
            UsersManager user = new UsersManager();
            recordCount = user.Total(ddlType.SelectedValue,txtSearch.Text);
            Count = (recordCount + pageSize - 1) / pageSize;
            if (Count == 0)
                Count = 1;
            if (page > Count)
                page = Count;
            user.GetUser_List(pageSize, page, rerUser, ltlShow, ddlType.SelectedValue, txtSearch.Text);
            Pager1.Items = pageSize;
            Pager1.Record = recordCount;
            Pager1.ShowPage();
        }
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            //截取URL
            string url = Function.RequestUrl(Request);
            Response.Redirect(url + "?pageindex=1&trem=" + ddlType.SelectedValue + "&content=" + txtSearch.Text);
        }供参考,我们实现的功能是一样的
      

  7.   

    我以前用过一个比较傻的办法,当然自己本事有限啊,我是用ViewState保存下拉列表的页码数,和后台写的分页sql语句实现的
      

  8.   

    其实就是在Page_Load里加上
    if (Request.QueryString["pagenumber"] != null)
    {
                PageList.SelectedValue = Request.QueryString["pagenumber"].ToString();
    }
      

  9.   


    你那就是一个活生生的URL跳转,还回发呢!
    其实问题已经很清楚了,你知道根据URL的参数去绑定数据源的pageindex,但是怎么就不知道dropdownlist也需要给它一个索引规则呢?
      

  10.   

    我知道我的是url跳转啊~~~我就是想问怎么实现在change事件处理程序里回发而不是像现在这样URL跳转呢
      

  11.   

    把dropdownlist的AutoPostBack属性改成false