2015-08-14 7 views
0

У меня есть gridview, у которого много столбцов внутри UpdatePanel, 2 из тех столбцов, которые заполнены кнопками. Кнопка «Обновить» находится за пределами сетки. Когда пользователь нажимает «Обновить», появляется дочерний элемент UpdateProgress, который ожидается. Однако, когда нажаты кнопки в gridview, он также отображается, что не является тем, что я намереваюсь. Как я могу исключить эти кнопки из UpdateProgress, если gridview сам находится в UpdatePanel? Я пробовал ChildrenAsTriggers = False и UpdateMode = Условное, но не помогает. См. Код, используемый ниже.Кнопка в Gridview, показывающая UpdateProgress на Click

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

удалить, что именем_события = «нажмите» и попробуйте –

+0

ControlID = «UpdateButton» дать только идентификатор кнопки и хочет OnClick ProgressBar на –

ответ

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

Спасибо за ответ, но, к сожалению, я не думаю, что это работает. Кнопки INSIDE имеют вид сетки, а кнопка «Обновить» полностью разделена. Я хочу, чтобы экран загрузки отображался, когда пользователь нажимает «Обновить», поэтому gridview находится в этой UpdatePanel. Моя проблема заключается в том, что экран загрузки появляется, когда нажаты кнопки IN gridview, и я не хочу этого. – misosouper