2008-10-15 29 views
2

我在ASP.net中有一个列表框。我正在动态地从页面中的另一个列表框中填充列表框值。在回发期间,输出列表框的值不会被保留。 (同时转到另一页并返回此页面)。列表框值持续回发

请建议一些很好的答案。 EnableViewstate =“true”不起作用。

+0

在什么阶段你填充列表框?如果ViewState不是以某种方式被禁用的话,我担心你已经做得太晚而无法被保存在页面中。 – leppie 2008-10-15 12:51:53

回答

3

你在做在Page_Load中任何应在负载

if(!IsPostBack) {} 

初始化代码需要在第一次加载页面时只能叫,而不是回发。

如果您要转到其他页面然后回到此页面,我认为您需要自己将这些信息保留在会话中,然后在您回到页面时将其恢复。

0

初始化页面初始化事件(Page_Init)中控件的内容。这样,用户提供的任何值都不会被默认值覆盖。

1

只有在同一页面上执行回传时,视图状态才会被保留。 娄佛朗哥写

if(!IsPostBack) {} 

您可以使用此初始pagerequest填写数据。如果您希望使用会话保存页面中的数据以存储值,那么这是最好的选择。

最好你在PreInit的SaveViewState事件之前填入你列表框中的数据,据我所知。

0

EnableViewState只会使用页面首次呈现时的值重新填充输出列表框,因为它们仍然是存储在视图状态中的值。浏览器只发送回发中选定的值,因此服务器无法知道您在客户端添加了哪些其他值。

您可以通过向页面添加隐藏输入并在更新列表框时使用动态值填充它来解决此问题。然后您的页面可以在回发期间检查该值并正确地重新填充列表。

0

在回发期间,对客户端上的列表框所做的更改不会持久,您需要将该信息记录在隐藏字段中,然后在page_load事件期间配置控件,以便在发布的其余部分进行更改。