下拉列表在回发时失去价值 [英] dropdownlist losing value on postback

查看:83
本文介绍了下拉列表在回发时失去价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Gridview中使用自定义分页。我已经创建了一个Control,其中有一个下拉列表来选择页面大小。一切正常,但当我刷新页面时,下拉列表丢失了它的价值

这里是我的代码

I am using Custom paging in Gridview. I have created a Control in which there is a dropdown to selece page size. Everything works fine but when i am refreshing page the dropdown lost it's value
here is my code

<asp:DropDownList ID="ddlPageRowSize" EnableViewState="True" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPageRowSize_SelectedIndexChanged">
                <asp:ListItem Value="10">10</asp:ListItem>
                <asp:ListItem Value="20">20</asp:ListItem>
                <asp:ListItem Value="50">50</asp:ListItem>
                <asp:ListItem Value="100">100</asp:ListItem>
            </asp:DropDownList>



页面加载我保存下拉列表选择值在viewstate这里是我的代码


on page load i am saving dropdown selected value in viewstate here is my code

protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) return;
        ViewState["PageSize"] = ddlPageRowSize.SelectedItem.Value;
    }
// suppose i have selected 100 from dropdown and then refresh the page 
// ddlPageRowSize.SelectedItem.Value always returns 10 



我做错了什么可以有人建议....


what wrong i am doing can anyone suggest....

推荐答案

你的页面加载事件应该是这样的事情
your page load event should be soemthing like this
protected void Page_Load(object sender, EventArgs e)
    {

  //  if (!Page.IsPostBack)
  //  {
     //do something
   // }
   // else
   // {
     //   ddlPageRowSize.SelectedIndex= Convert.ToInt32(Session["index"]);

         if(Session["index"] == null)
         {
             //do something
         }
         else
         {
             ddlPageRowSize.SelectedIndex= Convert.ToInt32(Session["index"]);  
         }


    }



您在ddlPageRowSize_SelectedIndexChanged事件中将值设置为会话,例如


where you set the value to the session in the ddlPageRowSize_SelectedIndexChanged event like

protected void ddlPageRowSize_SelectedIndexChanged(object sender, EventArgs e)
{
    Session["index"] = ddlPageRowSize.SelectedIndex;
}


已选择=True到您的列表项目将解决您的问题。



Selected="True" to your list item will solve your problem.

<asp:DropDownList ID="ddlPageRowSize" EnableViewState="True" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPageRowSize_SelectedIndexChanged">
                <asp:ListItem Selected="True" Value="10">10</asp:ListItem>
                <asp:ListItem Value="20">20</asp:ListItem>
                <asp:ListItem Value="50">50</asp:ListItem>
                <asp:ListItem Value="100">100</asp:ListItem>
            </asp:DropDownList>





请使用以下代码。



please use the following code.

protected void Page_Load(object sender, EventArgs e)
{

    if (Session["PageSize"] != null)
        ddlPageRowSize.SelectedValue = Convert.ToString(Session["PageSize"]);

}

protected void ddlPageRowSize_SelectedIndexChanged(object sender, EventArgs e)
{
    Session["PageSize"] = ddlPageRowSize.SelectedValue;
}


这篇关于下拉列表在回发时失去价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆