【问题标题】:Keeping selected item from dropdown box after page refresh in asp web form在asp web表单中刷新页面后,从下拉框中保留所选项目
【发布时间】:2014-08-19 13:06:14
【问题描述】:

我有一个aspx 页面,其中包含多个drop down list。所以当用户忘记输入一些值时,我必须向用户显示一个错误,但是每个DDL 都会再次初始化,并且用户信息丢失,我该如何避免这种情况?

当用户忘记输入值时,我会将它们返回到当前url

url1=www.spadsystem.com
Response.Redirect(Url1);

我听说我们可以通过使用 absolute 之类的东西来避免这个问题,我不确定。

【问题讨论】:

  • 使用 Session 对象来存储 ComboBox 的 SelectedIndex 属性,然后在 Page_Load() 事件中应用它。 Rgds,
  • 我的页面中有 30 个 DDL,如何使用 session 存储它们的状态?

标签: c# asp.net dropdownbox


【解决方案1】:

同意使用RequiredFieldValidator。并且,如果控件的视图状态处于打开状态,则控件应保持其值(检查属性)。

【讨论】:

    【解决方案2】:

    首先不要在不需要时重定向用户。

    其次为您的字段使用RequiredFieldValidator。当您的用户忘记输入任何值时,它将阻止回发。

    第三,如果您以编程方式绑定下拉列表,请在

    中执行此操作
    If(!IsPostBack)
    {
       //Your ddl initialization here
    }
    

    这将确保您从 DropDownLists 中获取选定的值

    【讨论】:

      【解决方案3】:

      避免重定向到另一个页面并返回以显示错误,并确保在 IsPostBack 为 false 时初始化列表。然后,ASP.NET Viewstate 将为您处理这一切并保留所有选定的值。

      【讨论】:

        【解决方案4】:

        使用 SessionState 对象存储 ComboBox 的 SelectedIndex 属性(例如 Cmb),然后在 Page_Load() 事件中应用它。

        示例 1:在 Session 中存储价值

        int _idx = Cmb.SelectedIndex;
        Session["idx"] = _idx.ToString();
        

        示例 2:从 Session 中读取并应用于 ComboBox:

        Cmb.SelectedIndex = (int)(Session["idx"]);
        

        更多详情请访问:http://msdn.microsoft.com/en-us/library/vstudio/ms178581%28v=vs.100%29.aspx

        Rgds,

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-05
          • 1970-01-01
          • 1970-01-01
          • 2017-03-23
          • 1970-01-01
          • 2014-03-16
          • 2015-06-21
          相关资源
          最近更新 更多