我在.aspx页面上有一个菜单,它将根据单击的菜单选项加载特定的用户控件。这部分工作正常。
我遇到的问题是当我从动态加载的用户控件实例化一个帖子时,会重新加载.aspx页面。现在,在研究了这里的一些其他问题后,我收集到每次回发实例化时我都必须重新创建用户控件。但是,我的问题可能很简单,但是如何根据发回服务器的内容重新加载特定的用户控件(并触发OnClick等事件)?
所以我的问题是:在回发后究竟会将哪些内容传回服务器,并且回发请求中是否存在允许我加载特定控件的内容?如果有,我怎么去?
答案 0 :(得分:1)
要以手动方式执行此操作,您必须在重新加载ViewState之前重新创建控件,例如在OnInit
期间。
有一个名为DynamicControlsPlaceHolder
的控件可以为您保留动态控件。这是一个明确的节省时间,它使持久的动态内容变得容易。
这是控件的链接:
http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx
为了更好地了解回发的功能,您需要了解ASP.NET页面生命周期。这是一篇MSDN文章,详细解释了它: