UpdatePanel 包裹着用户控件
我有一个用户控件,其中包含一些按钮和一个占位符。这些按钮会导致在占位符中添加/删除控件。一切正常。
现在我想将此用户控件放入页面中,并将其包装在更新面板中,如下所示:
<asp:UpdatePanel ChildrenAsTriggers="true" ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<grid:tablegrid ID="tablegrid_chapters" runat="server" SomeProperty="bar" />
</ContentTemplate>
</asp:UpdatePanel>
当我运行该页面时,当我点击用户控件内的某个按钮时,它仍在执行完整的回发。我做错了什么,我该如何补救?
更新:
protected void Page_Init()
{
ScriptManager scr = ScriptManager.GetCurrent(this.Page);
Response.Write("EnablePartialRendering: " + scr.EnablePartialRendering);
}
输出“EnablePartialRendering:true”
I have a user control which contains some buttons and a placeholder. Those buttons cause controls to be added/removed from placeholder. Everything works fine.
Now I want to put this user control in a page, and wrap it in an updatepanel like so:
<asp:UpdatePanel ChildrenAsTriggers="true" ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<grid:tablegrid ID="tablegrid_chapters" runat="server" SomeProperty="bar" />
</ContentTemplate>
</asp:UpdatePanel>
When I run the page, it's still doing a full postback when I hit one of the buttons inside the user control. What am I doing wrong, and how can I remedy this?
Update:
protected void Page_Init()
{
ScriptManager scr = ScriptManager.GetCurrent(this.Page);
Response.Write("EnablePartialRendering: " + scr.EnablePartialRendering);
}
Outputs "EnablePartialRendering: true"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
确保页面中的
ScriptManager
上有EnablePartialRendering=true
。更新
看起来您的 UserControl 没有要查找的事件...您这里有 2 个选项。将
UpdatePanel
移动到 UserControl .ascx 中,以便它可以将按钮事件视为子级,以进行装配或添加事件以供其查看,为此,请尝试如下操作:并将 UpdatePanel 更新为寻找它:
Make sure you have
EnablePartialRendering=true
on yourScriptManager
in the page.Update
It looks like your UserControl has no events to be looking for...you have 2 options here. Move the
UpdatePanel
inside the UserControl .ascx so it can see the button events as children to rig up or add an event for it to see, to do that try something like this:And update the UpdatePanel to be looking for it:
确保您也将 ScriptManager 添加到页面,否则没有 UpdatePanel 功能。
Make sure you add a ScriptManager as well to the page, otherwise there's no UpdatePanel functionality.