情况:
破解方案A:
结果:用户已单击添加新用户控件,服务器知道控件应该存在,但用户在触发页面再次加载(通过单击其他按钮或刷新等)之前不会看到它)。
当然,我看一下生命周期,看看事件后发生了Page_LoadComplete,所以如果我在Page_LoadComplete中放置任何依赖于事件的代码,那么一切都应该好吗?
破解B:
结果:一切都很好,除了添加的用户控件中的按钮是惰性的。
难题是:我需要通过按钮点击生成控件,这意味着我需要将我的Controls.Add(...)
代码放在Page_LoadComplete中。相反,我需要添加控件来处理工作事件,这意味着Controls.Add(...)
代码需要在Page_Load中。我有一个完美的二分法。
我能想到的唯一可行的解决方案是在单击“添加”按钮后,使用解决方案A并强制页面手动重新加载,这会浪费带宽和处理。
答案 0 :(得分:0)
这可能不是最佳做法,但您可以在Page_Init事件期间检查Request.Form
是否有添加按钮点击的证据,并在那里添加控件。它应该可以解决你的问题。