我有一个非常基本的用户控件。它包含几个TextBox控件,一些DropDownList控件,一个保存Button和一个取消Button。我想在两种不同的模式下使用此控件。第一种模式处于正常回发模式,以执行保存和取消操作。第二种模式将使用AJAX来执行保存和取消操作。
是否可以将控件的内容包装在UpdatePanel中,然后能够打开/关闭UpdatePanel是否为控件事件执行AJAX或PostBack?或者通过创建两个新控件(1个使用UpdatePanel,1个没有)来容纳一个旧控件,我会更好地服务吗?
答案 0 :(得分:1)
“关闭”UpdatePanel的最简单方法是在ScriptManager中将EnablePartialRendering设置为false。我不确定这是最好的解决方案。我建议您根据布尔标志将控件添加到代码隐藏的Page_Load事件处理程序中的更新面板。
void Page_Load() {
if(IsAjaxy) {
upAnUpdatePanel.Controls.Add(tbSomeTextBox);
}
else {
this.Controls.Add(tbSomeTextBox);
}
这些方面的东西应该可以正常工作。
答案 1 :(得分:1)
在此处查看刷新UpdatePanel内容部分:UpdatePanel Class。
但我个人认为,只需在没有UpdatePanel的情况下创建UserControl,然后在需要时将其封装在一个。不那么容易混淆。