在函数执行期间显示jQuery进度条

时间:2012-07-10 14:41:50

标签: jquery asp.net jquery-ui

我有一个按钮点击功能,完成了一系列任务。我希望在每个任务完成后显示和更新进度条,让我们说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);
        }

1 个答案:

答案 0 :(得分:0)

你需要使用ajax

  1. 提交原始请求
  2. 轮询服务器以获取进度更新。
  3. 进度需要存储在请求之外,以便每个请求都可以访问进度。