0

関数がまだサーバー側で実行されている間に、サーバー側からクライアント側のラベルを更新したい。どうすればこれを達成できますか?

コード スニペットは次のとおりです。

protected void Button1_Click(object sender, EventArgs e)
        {
            string Result = "Success";
            if (Result == "Success")
            {
                Label1.Text = "Plan mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Packing date mst Started";
            }
            if (Result == "Success")
            {
                Label1.Text = "Packing date mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Etd mst Started";
            }

            if (Result == "Success")
            {

                Label1.Text = "Etd mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Inner box mst Started";

            }
        }

関数がまだ実行中である間に、label1.text のすべての変更がクライアント側に反映されるようにします。助けてください!!!

4

2 に答える 2

1

そのメソッド内からフロント エンドと直接通信するのは難しいでしょう。これが私がそれを行う方法です。

1) 「計画mst」「梱包日mst」「Etdmst」「内箱mst」を4つの機能に分割。

2) ページのボタン クリック イベントで JavaScript 関数を起動し、AJAX を介して 4 つのメソッドのそれぞれを次々とヒットさせます。関数ごとに新しい ASPX ページを作成します ("InnerBox.aspx" など)。jquery がある場合は、次のようになります。

        $("#SubmitButton").click(function () {
            DoPlanMst();
        });

        function DoPlanMst(argumentObj) {
            SetLabel("Plan MST Started");
            $.ajax({
                url: "PlanMst.aspx",
                type: "POST",
                data: argumentObj, // your post params
                success: function () {
                    SetLabel("Plan MST Completed");
                    DoPackingDateMst();
                }
            });
        }


        function DoPackingDateMst(argumentObj) {
            SetLabel("Packing Date MST Started");
            $.ajax({
                url: "PackingDate.aspx",
                type: "POST",
                data: argumentObj, // your post params
                success: function () {
                    SetLabel("Packing Date MST Completed");
                    DoEtdMst();
                }
            });
        }

        function DoEtdMst(argumentObj) {
            SetLabel("ETD MST Started");
            $.ajax({
                url: "EtdMst.aspx",
                type: "POST",
                data: argumentObj, // your post params
                success: function () {
                    SetLabel("ETD MST Completed");
                    DoInnerBoxMst();
                }
            });
        }

        function DoInnerBoxMst(argumentObj) {
            SetLabel("Inner Box MST Started");
            $.ajax({
                url: "InnerBoxMst.aspx",
                type: "POST",
                data: argumentObj, // your post params
                success: function () {
                    SetLabel("Inner Box MST Completed");
                }
            });
        }

        function SetLabel(message) {
            $("#Label1").val(message);
        }

9 月 4 日の ASPX ページが必要ない場合は、それで問題ありません。それらを "ProcessMSTs.aspx" という 1 つのファイルにまとめて、クエリ文字列パラメーターを検索し、POST パラメーターを渡しながら、コード ビハインドで呼び出すメソッドを決定できます。 編集: AJAX 呼び出しの成功関数の関数名のタイプミスを修正しました。

于 2012-10-04T12:36:36.210 に答える
0

ブラウザからこの関数をどのように呼び出していますか。それは非同期呼び出しですか?クライアント側でそれ自体を管理できます。それが同期的なものである場合、リクエストへの応答がまだ保留中であるため、それは不可能です。

ajaxプロセス中にこの Jquery Ajaxポストアニメーションを使用しますか?

于 2012-10-04T11:46:51.290 に答える