0

一連のタスクを実行するボタンクリック機能があります。各タスクの完了時にプログレスバーを表示して更新したいのですが、たとえば25%、50%です。同様に、jQueryプログレスバーを使用してこれを実現し、4つの非表示フィールドを使用してさまざまな値を格納していますが、プログレスバーは関数がオンになり、100%完全であることを直接示しますコードサンプルは次のとおりです

<asp:Button ID="Button1" runat="server" Text="btnExecute" OnClientClick="return timeout_init();" OnClick="btnExecute_Click" />

codebehind:さまざまな隠しフィールド値を設定する

protected void btnExecute_Click(object sender, EventArgs e)
    {
        //Ist level task complete
        hfProgressValue.Value = "25";
        Thread.Sleep(1000);

        //IInd level task completion
        ProgressValue1.Value = "50";
        Thread.Sleep(1000);

        //3rd level task 
        prg2.Value = "75";
        Thread.Sleep(1000);

        //4th level task
        hfprg3.Value = "100";
    }

javascript

function timeout_init() {

            var progressBarVal = $("input[id$='hfProgressValue']").val();
            var progressBarVal1 = $("input[id$='ProgressValue1']").val();
            var progressBarVal2 = $("input[id$='prg2']").val();
            var progressBarVal3 = $("input[id$='hfprg3']").val();

            if (progressBarVal != "") {
                $("#progressbar").progressbar({
                    value: parseInt(progressBarVal)
                });
            }
            if (progressBarVal1 != "") {
                $("#progressbar").progressbar({
                    value: parseInt(progressBarVal1)
                });
            }
            if (progressBarVal2 != "") {
                $("#progressbar").progressbar({
                    value: parseInt(progressBarVal2)
                });
            }
            if (progressBarVal3 != "") {
                $("#progressbar").progressbar({
                    value: parseInt(progressBarVal3)
                });
            }
            setTimeout('timeout_init()', 0);
        }
4

1 に答える 1

0

ajaxを使用する必要があります

  1. 元のリクエストを送信する
  2. 進行状況の更新のためにサーバーをポーリングします。

各リクエストが進行状況にアクセスできるように、進行状況はリクエストの外部に保存する必要があります。

于 2012-07-10T14:49:49.827 に答える