【问题标题】:Button in Gridview showing UpdateProgress on ClickGridview 中的按钮在单击时显示 UpdateProgress
【发布时间】:2015-08-14 01:34:56
【问题描述】:

我有一个网格视图,它在 UpdatePanel 中有许多列,其中 2 个列填充有按钮。网格视图之外有一个“更新”按钮。当用户单击“更新”时,会显示一个 UpdateProgress div,这是预期的。但是,当单击 gridview 中的按钮时,它也会显示出来,这不是我想要的。如果gridview 本身在UpdatePanel 中,如何从UpdateProgress 中排除这些按钮?我试过 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>

【问题讨论】:

  • 删除那个 eventName="click" 并尝试
  • ControlID="UpdateButton" 只给出你想点击进度条的按钮的 ID

标签: asp.net vb.net gridview updateprogress


【解决方案1】:

将您的 Gridview 放在单独的更新面板中,并为 UpdateProgress 控件指定 AssociatedUpdatePanelID 字段。

<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>

【讨论】:

  • 感谢您的回答,但不幸的是我认为这不起作用。按钮位于gridview 内部,Update 按钮是完全独立的。我确实希望在用户单击更新时显示加载屏幕,这就是网格视图位于该更新面板中的原因。我的问题是,当单击gridview 中的按钮时会显示加载屏幕,我不希望这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 2017-08-19
相关资源
最近更新 更多