从回发动态加载特定用户控件

时间:2011-10-04 13:53:22

标签: c# asp.net user-controls

我在.aspx页面上有一个菜单,它将根据单击的菜单选项加载特定的用户控件。这部分工作正常。

我遇到的问题是当我从动态加载的用户控件实例化一个帖子时,会重新加载.aspx页面。现在,在研究了这里的一些其他问题后,我收集到每次回发实例化时我都必须重新创建用户控件。但是,我的问题可能很简单,但是如何根据发回服务器的内容重新加载特定的用户控件(并触发OnClick等事件)?

所以我的问题是:在回发后究竟会将哪些内容传回服务器,并且回发请求中是否存在允许我加载特定控件的内容?如果有,我怎么去?

1 个答案:

答案 0 :(得分:1)

要以手动方式执行此操作,您必须在重新加载ViewState之前重新创建控件,例如在OnInit期间。

有一个名为DynamicControlsPlaceHolder的控件可以为您保留动态控件。这是一个明确的节省时间,它使持久的动态内容变得容易。

这是控件的链接:
http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx

为了更好地了解回发的功能,您需要了解ASP.NET页面生命周期。这是一篇MSDN文章,详细解释了它:

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