如何在asp.net VB中维护发布时的下拉列表状态

本文关键字:布时 下拉列表 状态 维护 asp net VB | 更新日期: 2023-09-27 18:00:43

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

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

如何在asp.net VB中维护发布时的下拉列表状态

hi@Newyork167这将不起作用,因为他上面提到"根据单选按钮列表的选择,将填充下拉列表。"因此,您必须存储"RadioButtonList"选定值,并相应地填充DropDownlist值,并在返回页面后设置选定值。

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

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

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;

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

更新

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