Кнопка в 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>
Другие вопросы по тегам