Кнопка в Gridview, показывающая UpdateProgress при клике
У меня есть gridview, который имеет много столбцов в UpdatePanel, 2 из этих столбцов, которые заполнены кнопками. За пределами вида сетки есть кнопка "Обновить". Когда пользователь нажимает "Обновить", появляется div UpdateProgress, что ожидается. Однако, когда нажимаются кнопки в виде сетки, он также обнаруживается, что я не собираюсь делать. Как я могу исключить эти кнопки из UpdateProgress, если само представление сетки находится в UpdatePanel? Я пробовал ChildrenAsTriggers=False и UpdateMode=Conditional, но это не помогает. Смотрите код, используемый ниже.
<asp:UpdateProgress id="UpdateProgress" runat="server">
<ProgressTemplate>
<div style="position: fixed; text-align: center; height: 100%; width: 100%; top: 0; right: 0; left: 0; z-index: 9999999; background-color: #000000; opacity: 0.7;">
<asp:Image ID="imgUpdateProgress" runat="server" ImageUrl="~/images/ajax-loader.gif" AlternateText="Updating PO, please wait ..." ToolTip="Updating PO, please wait ..." style="padding: 10px;position:fixed;top:45%;left:50%;" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UpdateButton" EventName="Click"/>
</Triggers>
<ContentTemplate>
<!-- Gridview is here -->
</ContentTemplate>
</asp:UpdatePanel>
Пример того, что находится в gridview:
<asp:TemplateField HeaderText="Button Column One">
<HeaderStyle Width="70px" />
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="70px" />
<ItemTemplate>
<asp:Button ID="btnG" runat="server" OnCommand="btnG_Command" Text="View"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False" HeaderText="Drug Details">
<ItemTemplate>
<asp:Button ID="btnA" runat="server" OnCommand="btnA_Command" Text="View" />
</ItemTemplate>
<HeaderStyle Width="60px" HorizontalAlign="Center" />
<ItemStyle Width="60px" HorizontalAlign="Center" />
</asp:TemplateField>
1 ответ
Поместите Gridview в отдельную панель обновлений и укажите поле AssociatedUpdatePanelID для элемента управления UpdateProgress.
<asp:UpdateProgress id="UpdateProgress" runat="server" AssociatedUpdatePanelID="UpdatePanelForButton">
<ProgressTemplate>
<div style="position: fixed; text-align: center; height: 100%; width: 100%; top: 0; right: 0; left: 0; z-index: 9999999; background-color: #000000; opacity: 0.7;">
<asp:Image ID="imgUpdateProgress" runat="server" ImageUrl="~/images/ajax-loader.gif" AlternateText="Updating PO, please wait ..." ToolTip="Updating PO, please wait ..." style="padding: 10px;position:fixed;top:45%;left:50%;" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanelForButton" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="UpdateButton" EventName="Click"/>
</Triggers>
<ContentTemplate>
<!--Button goes here-->
</ContentTemplate>
</asp:UpdatePanel>