0

朝!

ページのポストバック中にアニメーションを起動する UserControl を呼び出す内部に UpdateProgress を持つ asp.net UpdatePanel があります。この状況では完全に機能しますが、このアニメーションを少し変更して、Easyui の進行状況ポップアップを所定の位置に配置しようとしています。

EasyUI プログレス ポップアップ デモの URL は次のとおりです: http://www.jeasyui.com/demo/main/index.php?plugin=Messager&theme=default&dir=ltr&pitem=#

これが私のASPXコードです:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
    <ProgressTemplate>
        <uc1:Loading runat="server" ID="Loading" />
    </ProgressTemplate>
</asp:UpdateProgress>

およびユーザー コントロール ページ:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Loading.ascx.cs" Inherits="Test.UserControl.Loading" %>

<link href="css/loading.css" rel="stylesheet" type="text/css" />

<div class="LoadingContainerBackground">
<div class="LoadingGreyBackground">
</div>
<div class="LoadingTableHolder">
    <table style="text-align: center; width: 100%; border-spacing: 0; border-collapse: collapse;">
        <tr>
            <td colspan="3" style="height: 200px"></td>
        </tr>
        <tr>
            <td style="width: 38%"></td>
            <td style="width: 20%; height: 175px; text-align: center; vertical-align: middle">
                <asp:Image ID="update" runat="server" ImageUrl="img/loading.gif" />
            </td>
            <td style="width: 40%"></td>
        </tr>
    </table>
</div>
</div>

この実際のフォームでは完全に機能しますが、冗長性を避けるためにこれを同じ UserControl に配置したいと思います。

function progress() {
    var win = $.messager.progress({
        title: 'Please waiting',
        msg: 'Loading data...'
    });
    setTimeout(function () {
        $.messager.progress('close');
    }, 5000)
}

そして、このイベントが現在のようにトリガーされること。誰でもこれで私を助けることができますか?

PS: この同じイベントがプロジェクト内の数十ページで使用されるため、このイベントが UserControl にとどまることが重要です。

PS2:ページ間の多様性を容易にするために、ページ間の疎結合を使用することを好むため、マスターページは使用しません。

4

1 に答える 1

0

解決しました!

アニメーションの時間を制御するために、ポストバックの開始と終了に JavaScript ハンドラーを配置しました。

ここにEXがあります:

<script>
    Sys.Application.add_init(appl_init);

    function appl_init() {
        var pgRegMgr = Sys.WebForms.PageRequestManager.getInstance();
        pgRegMgr.add_beginRequest(BeginHandler);
        pgRegMgr.add_endRequest(EndHandler);
    }

    function BeginHandler() {
        var win = $.messager.progress({
            title: 'Please waiting',
            msg: 'Loading data...'
        });
        setTimeout(function () {
            $.messager.progress('close');
        }, 9999)
    }

    function EndHandler() {
        $.messager.progress('close');
    }
</script>
于 2013-09-22T13:25:18.590 に答える