更改UpdatePanel外部的控制

时间:2014-07-25 05:14:40

标签: asp.net updatepanel

简而言之:当我点击UpdatePanel内部的按钮时,我想启用一个按钮,即在UpdatePanel外面。

问题:该按钮启用,但在i

按钮点击后,呈现的代码中未显示asp:LocalizeUpdatePanel updPnlOfferings标记

详情: 我在UpdatePanel内有一个DataList,它包含列表中每个项目的删除按钮。删除按钮在服务器上触发事件,删除记录并禁用按钮(即UpdatePanel外部)。

如有人建议我在UpdatePanel以下

保留我的按钮(需要禁用)
  <asp:UpdatePanel ID="updPnlCourse" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:LinkButton ID="lnkDeleteCourseDetails" runat="server" OnClick="lnkDeleteCourseDetails_Click">
                        <i class="icon-remove-sign"></i>
                        <asp:Localize ID="Localize6" runat="server" Text="<%$ Resources:CBLabels, LBL_DeleteDetails %>" />
                    </asp:LinkButton>
                    <asp:ConfirmButtonExtender ID="lnkDeleteCourseDetails_ConfirmButtonExtender" runat="server"
                        ConfirmText='Are you sure you want to delete this course?' Enabled="True" TargetControlID="lnkDeleteCourseDetails">
                    </asp:ConfirmButtonExtender>
                </ContentTemplate>
            </asp:UpdatePanel>

触发事件的主UpdatePanel位于

之下
    <asp:UpdatePanel ID="updPnlOfferings" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:Panel ID="pnlDSOfferings" runat="server">
                <asp:DataList ID="dtlstOfferings" runat="server" OnItemCommand="dtlstOfferings_ItemCommand" EnableViewState="true">
                </asp:DataList></asp:Panel>
         </ContentTemplate>
    </asp:UpdatePanel> 

on dtlstOfferings_ItemCommand事件我编码了这个

lnkDeleteCourseDetails.Enabled = true;
lnkDeleteCourseDetails.ToolTip = "";
lnkDeleteCourseDetails_ConfirmButtonExtender.Enabled = true;
updPnlCourse.Update();

1 个答案:

答案 0 :(得分:1)

这是此link中指定的已知问题。 解决方案是将所有内容放在LinkBut​​ton中,放在像下面这样的占位符中,或者将所有子控件作为服务器控件。

<asp:LinkButton ID="lnkDeleteCourseDetails" runat="server" OnClick="lnkDeleteCourseDetails_Click">
   <asp:PlaceHolder runat="server"> 
     <i class="icon-remove-sign"></i>
     <asp:Localize ID="Localize6" runat="server" Text="<%$ Resources:CBLabels, LBL_DeleteDetails %>" />
   </asp:PlaceHolder>
</asp:LinkButton>