保留动态下拉值

时间:2011-10-09 10:33:27

标签: asp.net drop-down-menu

我在这个aspx页面中有3个dyanmically生成的下拉列表。根据第一个选择的值填充第二个和第三个(我在第一个选择的索引更改事件中创建第二个和第三个下拉列表的代码)

如何以这样的方式编写代码:当我遍历到页面时,动态下拉列表会保留其选定的值?

1 个答案:

答案 0 :(得分:0)

我假设当你说“遍历”到页面时你的意思是你导航到网站上的另一个页面然后回到这个页面,它的下拉值将填入什么用户选中。

请记住,HTTP是一种无状态的无状态协议,因为它不会记住回发到服务器之间的数据。为了克服这个限制,ASP.NET和其他Web框架使用各种方法在请求之间保存数据。目前,您依赖于存储在页面中的“ViewState”作为名为__VIEWSTATE的隐藏变量(有时查看页面源以了解哪个字段看起来像这样)此隐藏变量的这个范围是当页面首次加载时每次你回发到同一页面。根据您的描述,您可能需要一个名为SessionState或Cookie的长期持久性来存储特定会话的值。

以下是来自MSDN的链接,其中包含有关在ASP.NET应用程序中保存状态的所有可能方法的有趣信息。如果您有任何其他问题,请告诉我。

http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx

- EDIT-- 这是关于会话状态的MSDN文章的链接。我的建议是小心使用Session状态,只存储绝对需要的东西。另外我建议你有一个包含会话密钥的一堆常量的类。它更容易管理

http://msdn.microsoft.com/en-us/library/ms178581.aspx

即代替

string value = Session["Key"];


//Create a class SessionKeys
Class SessionKeys{
    public const string SESSION_KEY = "Key"
}


//Now that string is strongly typed and you don't have to worry about misspelling it

string value = Sesssion[SessionKeys.SESSION_KEY];