zukucode
主にWEB関連の情報を技術メモとして発信しています。

ASP.NET UpdateProgressを手動で表示する

UpdataPanelで非同期ポストバック中にローディングアイコンを表示して操作不可にするで紹介したように、以下のようにUpdateProgressコントロールを置いておくだけで、デフォルトではすべてのUpdataPanelの非同期ポストバック時にProgressTemplate内の要素が表示されます。

<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="False" DisplayAfter="0">
    <ProgressTemplate>
        <div class="loading">
        </div>
    </ProgressTemplate>
</asp:UpdateProgress>

非同期ポストバックだけでなく、普通のポストバック時など任意のタイミングでUpdateProgressを表示したい場合があります。

JavaScriptで以下のようにvisibilityのスタイルを変更すれば表示されます。

document.getElementById('UpdateProgress1').style.visibility = 'visible';

UpdateProgressがマスタページなどに定義されている場合は、IDをそのまま指定できないので、ASP.NET Masterページのコントロールを取得するで紹介した方法でUpdateProgressのコントロールを取得します。

document.getElementById('<%= Me.Master.FindControl("UpdateProgress1").ClientID %>').style.visibility = 'visible';

関連記事