我在页面上有几个用户控件实例。它们也相互嵌套。由于这些控件是动态创建的,因此我无法维护其状态。我决定手动将状态保存到持久性介质(可能是Session)。
在主机页面上按钮上的click事件中,我想编写功能以在回发发生之前保存控件的状态(一旦有回发,控件将被重新创建并且我将丢失状态)。 / p>
如果我把这个逻辑放在按钮事件处理程序中,因为这是在回发后执行的,我不再有这些信息。
我应该覆盖哪种方法?
答案 0 :(得分:1)
尝试在Page Init中创建按钮,而不是在加载时创建按钮。
答案 1 :(得分:0)
并没有真正回答你的问题,但我很好奇为什么按钮的布局会被重置。你在通过javascript做什么吗?
您是如何创建按钮的?在page_load中?你在检查它的回发时间吗?
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
// load all buttons
LoadButtons();
}
}
答案 2 :(得分:0)
听起来你正在重新创建回发控件,所以他们失去了状态。您应该使用Page.IsPostBack来防止这种情况发生。同时检查页面是否允许Viewstate。
答案 3 :(得分:0)
实际上,您希望在LoadViewState方法覆盖中加载动态控件。不要试图自己维持状态;这是浪费时间。您只需将代码放在正确的位置即可。