2013-07-18 2 views
0

Я использовал Ajax на своем веб-сайте. В файле Site.Master У меня есть следующий код:Ajax UpdatePanel не работает только в одной странице

<div> 
    <asp:UpdateProgress ID="UpdateProgress" runat="server"> 
     <ProgressTemplate> 
      <asp:Image ID="Image1" ImageUrl="~/Images/295.gif" AlternateText="Processing" runat="server" /> 
     </ProgressTemplate> 
    </asp:UpdateProgress> 
    <ajaxToolkit:ModalPopupExtender ID="modalPopup" runat="server" TargetControlID="UpdateProgress" 
     PopupControlID="UpdateProgress" BackgroundCssClass="modalPopup" /> 
</div> 

Это приводит к прелоадер на каждом ребенок странице, на которой я реализованный UpdatePanel. Это нормально до сих пор.

Но у меня есть одна страница с сеткой, которая обновляется каждую секунду. Он также использует updatePanel для извлечения данных с сервера. Эта страница также наследуется от site.master, поэтому каждую секунду я вижу в ней знак предварительного загрузчика. Это выглядит так плохо в дизайне.
Я хочу иметь возможность отключить предварительный загрузчик только на этой странице. Есть ли способ сделать это?

Вот код моего ребенка форма:

<asp:Panel ID="panel1" runat="server"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" 
       CellPadding="4" ForeColor="#333333" GridLines="None"> 
       <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
       <Columns> 
        <asp:BoundField DataField="WBWeight" HeaderText="WBWeight" SortExpression="WBWeight"> 
        </asp:BoundField> 
        <asp:BoundField DataField="bowzer_no" HeaderText="bowzer_no" SortExpression="bowzer_no" /> 
        <asp:BoundField DataField="FLD" HeaderText="FLD" SortExpression="FLD" /> 
        <asp:BoundField DataField="Product_Name" HeaderText="Product_Name" SortExpression="Product_Name" /> 
        <asp:BoundField DataField="Customer_Name" HeaderText="Customer_Name" SortExpression="Customer_Name" /> 
        <asp:BoundField DataField="quantity" HeaderText="quantity" SortExpression="quantity" /> 
       </Columns> 
       <EditRowStyle BackColor="#999999" /> 
       <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
       <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
       <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
       <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
       <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
       <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
       <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
       <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
      </asp:GridView> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
     </Triggers> 
    </asp:UpdatePanel> 
    <ajaxToolkit:UpdatePanelAnimationExtender ID="UpdatePanel1_UpdatePanelAnimationExtender" 
     runat="server" Enabled="True" TargetControlID="UpdatePanel1"> 
    </ajaxToolkit:UpdatePanelAnimationExtender> 
</asp:Panel> 

ответ

1

Самый простой способ обойти это было бы скрыть свой загрузчик на этой странице.

Дайте класс css вашему изображению на главной странице и используйте этот класс, чтобы скрыть его на странице.

MasterPage:

<asp:UpdateProgress ID="UpdateProgress" runat="server"> 
    <ProgressTemplate> 
     <asp:Image ID="Image1" CssClass="loader" ImageUrl="~/Images/295.gif" AlternateText="Processing" runat="server" /> 
    </ProgressTemplate> 
</asp:UpdateProgress> 

Страница:

<style> 
.loader{display: none} 
</style> 
+0

Спасибо, что сделал именно то, что было нужно. Никогда не думал об этом !! :-) –

+0

Добро пожаловать. :-) – nunespascal

Смежные вопросы