首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多重UpdatePanels与状态

多重UpdatePanels与状态
EN

Stack Overflow用户
提问于 2009-01-29 15:44:07
回答 5查看 1.3K关注 0票数 1

我有一个具有多个更新面板的用户控件。

在Page上,我动态地将一个子用户控件加载到PlaceHolder (我每次都这样做,不检查回发)

我希望能够维护用户在子用户控件中所做更改的状态。(子用户控件与asp.net控件和其他自定义控件一起具有html控件)。

每当单击按钮A或B导致回发时,子用户控件就会失去状态。UpdatePanels的模式已设置为条件模式。

在OnPageLoad中,

将子控件加载到PlaceHolderA

  • This子控件的
  1. I有另一个具有大量JS的用户控件。用户可能会在子控件.
  2. 中进行更改,当他们单击作为父控件一部分的Button A时,OnPageLoad会导致子控件重新加载,导致其丢失用户所做的客户端更改。

我想防止这种情况发生。

下面是ASPX页面的HTML结构

代码语言:javascript
复制
<UpdatePanel1>
<UpdatePanelChild1>
    <Button A>
    <Button B>
</UpdatePanelChild1>
<UpdatePanelChild2>
    <PlaceHolderA>
</UpdatePanelChild2>    

EN

回答 5

Stack Overflow用户

发布于 2009-02-05 17:09:42

动态添加控件时,每次页面加载时都需要重新添加它们。我不得不解决类似的困难,我这样做有两种方式。在动态字段中添加动态字段时,我实际上将在用户单击以填充或自己添加该控件之前向页面添加一个隐藏控件。通过创建这种占位符,系统可以让tim正确地处理viewstate,从而保留用户的更改。我听到您提到的第二个问题是,chich更新面板更新可能会出现问题。可以将它们设置为条件,但在代码后面,如果需要从代码中触发更新,也可以在rpanels中触发。只是updatepanel#.update()

或者,您也可以将所有更新面板包装在另一个面板中,但我建议您不要这样做,因为它浪费了资源。

票数 1
EN

Stack Overflow用户

发布于 2009-02-10 16:42:34

看起来,您正在失去动态添加的子控件的ViewState。

这是因为在页面生命周期中添加它太晚了: ViewState是在Page.Load事件之前加载的。

尝试在Page.Init中添加您的子控件。

票数 1
EN

Stack Overflow用户

发布于 2009-01-29 15:49:03

您可以在控件中使用带有窗体runat服务器的ScriptManager,而可以使用更新面板。

这样你就没有后背了。

这里有一个很好的参考资料:http://www.asp.net/Ajax/Documentation/Live/overview/ScriptManagerOverview.aspx

欢迎光临。乔瑟马。http://www.learning-workshop.com

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/492139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档