【问题标题】:How to maintain state of drop down list on post back in asp.net VB如何在asp.net VB中保持回发下拉列表的状态
【发布时间】:2014-04-29 03:28:16
【问题描述】:

我有一个单选按钮列表,根据选择的单选按钮列表,下拉菜单将被填充。重要的是这里的单选按钮列表设置为 autopostback=true。

当我通过按钮点击移动到下一页时,当我回来时。下拉按钮无法保持状态。它正在失去价值。保持状态直到我到达最后一页对我来说很重要。我该如何解决这个问题。我使用过会话,但没有成功。你能告诉我如何实现会话吗?

【问题讨论】:

  • 这很可能是因为您的页面生命周期。查看this SO question and answer
  • 请在此处添加您的代码以了解更多......关于场景!

标签: c# asp.net vb.net


【解决方案1】:

嗨@Newyork167 这将不起作用,因为他在上面提到“基于对单选按钮列表的选择,将填充下拉菜单。”所以你必须存储“RadioButtonList”选择的值,并相应地填充DropDownlist值并在返回页面后设置选择。

【讨论】:

  • 你是对的!睡前别回答了哈哈!
【解决方案2】:

好的。根据我的理解,您需要保存页面状态,以便当您返回时,您可以在您离开时获得之前状态的页面。所以要做到这一点,你有两种方法。 1. 在跳转到下一页之前,将所有内容存储在会话中,如“单选按钮选择值”、下拉选择值和其他设置(如果有)。 2. 将这些值“Radiobutton selected value”、“dropdown selected value”和其他(如果有)作为查询字符串传递,当您返回时读取相同的查询字符串。 无论哪种方式,当您回来时,您将拥有以前的数据。在 page_load 事件中,只需检查您是否有该数据。如果是,则使用以前的数据填充控件,否则填充控件以进行首次加载。 这里有一些链接供您参考。 http://www.codeproject.com/Articles/5876/Passing-variables-between-pages-using-QueryString Passing Session[] and Request[] to Methods in C#

【讨论】:

    【解决方案3】:

    如果你想使用会话,你可以检查会话变量和列表中的所有值

    if(Session["selectedList"] != Null){
        var check = Session["selectedList"].ToString();
        foreach(ListItem item in yourList.Items){
            if(item.Value.Equals(check))
                // set it as selected
        }
    }
    

    用于存储,当您单击按钮时

    Session["selectedList"] = yourList.SelectedValue;
    

    您也可以使用索引而不是值。您还可以为每个下拉菜单/单选按钮列表创建一个会话变量,然后为每个变量创建一个循环。

    更新

    感谢 Shekhar 指出这一点。您需要浏览所有要存储的列表并使用这些循环保存它们,而不仅仅是下拉列表。然后,您需要恢复单选按钮的值,重新绑定下拉菜单,然后为每个设置选择项。

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多