如何从动态创建的控件中将用户输入的数据保存到会话状态?

时间:2009-07-07 21:10:13

标签: c# asp.net session-state

使用c#(asp.net)

我以编程方式创建了几个下拉列表(随机数)。 用户从每个列表中选择一个特定值,我需要保存用户选择的值。

如果我尝试使用按钮单击事件将数据保存到会话状态,则表示尚未创建下拉列表对象。 (显然,因为我在!IsPostBack下的页面加载事件中创建了下拉列表。)

如果我尝试在IsPostBack下的页面加载事件中将数据保存到会话状态,我只从每个列表中获取第一个值。 (显然,在回发后重新创建页面时,下拉列表已重新创建,用户输入的数据将丢失)。

单击按钮时,如何从下拉列表中保存用户选择的值? 我在代码隐藏文件中这样做。

3 个答案:

答案 0 :(得分:0)

您必须重新创建每个回发的所有下拉列表。

答案 1 :(得分:0)

就个人而言(没有切换到MVC的能力)我会考虑完全摆脱回发并直接从标准HTTP POST请求中读取值。

使用回发实现动态控制通常会导致相当复杂且难以理解

答案 2 :(得分:0)

正如John Saunders所说,你必须在每次回发时重新创建所有DropDownList控件。此外,您必须在状态恢复之前创建。这意味着页面加载事件中的“under!IsPostBack”已经太晚了。将其移至Page Init。