0

Web サイトで Ajax を使用しています。Site.Master ファイルには、次のコードがあります。

<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 を実装した各子ページに PRELOADER が作成されます。これで今のところ大丈夫です。

しかし、毎秒更新されるグリッドを持つページが 1 つあります。また、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>
4

1 に答える 1

1

これを回避する最も簡単な方法は、このページでローダーを非表示にすることです。

マスター ページの画像に css クラスを指定し、そのクラスを使用してページ上で非表示にします。

マスターページ:

<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>
于 2013-07-18T06:57:34.790 に答える