我在页面上有一个模式,它还包含一个用户控件。
单击模态中的“确定”按钮时,我想更新页面上用户控件中包含的UpdatePanel。
目前模态上的“确定”按钮执行整页回发,我只想更新面板,但我不确定如何将其添加为触发器,因为它不在控件中,UpdatePanel是
感谢。
我有一个部分答案......我可以通过这样做一次更新面板:
Dim addTrigger As New AsyncPostBackTrigger
addTrigger.ControlID = MyButton.ID
addTrigger.EventName = "Click"
MyUserControl.GetUpdatePanel.Triggers.Add(addTrigger)
这将导致第一次部分回发,但在第一次之后会导致整个页面重新加载。有什么想法吗?
答案 0 :(得分:1)
您可以将Update按钮显式添加为UpdatePanel的AsyncPostBackTrigger。
在UpdatePanel的aspx标记中:
<asp:UpdatePanel ID="updPanel" runat="server">
<ContentTemplate>
....
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="the control" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
或代码隐藏:
protected override void OnInit(EventArgs e)
{
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = "the Control";
trigger.EventName = "Click";
updPanel.Triggers.Add(trigger);
base.OnInit(e);
}
答案 1 :(得分:0)
也许我在这里遗漏了一些细微之处,但是你不能只是在更新面板上调用Update() method吗?
答案 2 :(得分:0)
您可以使用以下模式在JavaScript中控制面板回发:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm._panelsToRefreshIDs = UPComments.uniqueID;
prm._doPostBack(eventTarget,eventArgument);
theForm.submit();
答案 3 :(得分:0)
难道您不能以编程方式从代码隐藏中添加AsyncPostBackTrigger吗?
答案 4 :(得分:0)
只需将Panel的内容放在您拥有的更新面板中:
您的用户控制在这里。
这也可以防止弹出窗口消失,直到你想要它为止。
在您的代码中,您可以使用popup.show(0或pop.hide()调用它,并通过addin gan事件将它们链接到您的用户控件,并在您的页面代码后面处理它。这样您的用户控件可以指示弹出窗口做什么和什么时候。如果你出于某种原因需要更新hte更新面板。
对于上面的情况,我刚才意识到是在对照中更新了ehte面板。在控件中创建一个方法,调用更新方法或更新面板,然后从您的页面触发该事件。反过来也是相同的原则。通过很好地利用事件,你可以连接你的应用程序,做一些非常酷的东西。