我在父面板中有两个嵌套的UpdatePanle和一个按钮和一个编辑器,在子面板中有一个GridView。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btn_UsersList" runat="server"
OnClick="btn_UsersList_Click" Text="users" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView_UsersList" runat="server">
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btn_UsersList"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<fckeditorv2:fckeditor id="FCKeditor_Message" runat="server"
basepath="~/fckeditor/"></fckeditorv2:fckeditor>
</ContentTemplate>
</asp:UpdatePanel>
我想在单击按钮时更新子面板但不更新父UpdatePanel。我可以这样做吗?我的代码有什么问题? 提前谢谢
答案 0 :(得分:1)
设置ChildrenAsTriggers="false"
,然后在每个UpdatePanel
内
使用<triggers>
标记(我通常将它放在我的标记下方)
ContentTemplate
)手动指定更新面板的哪些控件
更新。我几乎总是使用这个,所以我知道是什么导致我的
回发,我没有一些我不知道的事情。
示例:
<UpdatePanel id="Parent" ChildrenAsTriggers="false" UpdateMode="conditional">
<ContentTemplate>
<UpdatePanel id="Child" ChildrenAsTriggers="false" UpdateMode="conditional">
<ContentTemplate>
<!-- Content Here -->
</ContentTemplate>
<Triggers>
<!-- Updates only the child panel -->
<asp:AsynchronousPostBackTrigger
ControlID="btnChangeChildPanel" EventName="Click" />
</Triggers>
</UpdatePanel>
<asp:Button id="btnChangeChildPanel" runat="server"
OnClick="btnChangeChildPanel_OnClick" />
</ContentTemplate>
<Triggers>
<!-- Add parent triggers here -->
</Triggers>
</UpdatePanel>
答案 1 :(得分:0)
@sohren
您可能需要在某些时候取消阻止UI。您可以使用pageLoad()
功能来实现此目的。如果在阻止UI后您的AJAX请求成功运行,则在收到响应并更新页面时将调用pageLoad()
函数。这是您可以取消阻止UI的地方。