在asp.net进度条更新中调用Jquery Ajax

时间:2013-08-26 07:49:21

标签: c# jquery asp.net

我正在asp.net中进行jquery ajax调用,我从文本框中的数据库获取一些值,并在其基础上我正在制作jquery progressbar。 它在文本框中获得了价值,但是它没有第一次获取进度条的值,我必须重新加载页面以获得进度条的值。
以下是我的代码

 $(function () {
        GetValue();
        var l_count= parseInt($("#txtcount").val());

        $("#sliderlicense").progressbar({
            max: 100,
            value: l_count
        });           
    });

    function GetValue() {
        $.ajax({
            type: "POST",
            url: "MyPage.aspx/GetCount", //url to point your webmethod     
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (Result) {
                $("#txtcount").val(Result.d);
            },
            error: function () { alert('error'); }
        });
    }


 [System.Web.Services.WebMethod()]
        public static string GetCount()
        {
          //Get values from DB and return it
        }

我也尝试过使用document.ready但没有运气,我应该使用Jquery的哪个事件来第一次制作我的进度条。

2 个答案:

答案 0 :(得分:1)

试试这个:

async:false,添加到ajax调用

$(document).ready(function(){
        GetValue();
        var l_count= parseInt($("#txtcount").val());

        $("#sliderlicense").progressbar({
            max: 100,
            value: l_count
        });

    });
})
function GetValue() {
    $.ajax({
        type: "POST",
        url: "MyPage.aspx/GetCount", //url to point your webmethod     
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async:false,
        success: function (Result) {
            $("#txtcount").val(Result.d);
        },
        error: function () { alert('error'); }
    });
}

答案 1 :(得分:1)

ajax意味着Asynchronous,这意味着你需要等待,直到你的第一个请求成功,并在有价值的pocess之后。

一些伪代码:

 $.ajax({
        type: "POST",
        url: "MyPage.aspx/GetCount", //url to point your webmethod     
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (Result) {
            $("#txtcount").val(Result.d);

            //HERE ASSIGN TO PROGRESS BAR 
            var l_count= parseInt($("#txtcount").val());

            $("#sliderlicense").progressbar({
             max: 100,
             value: l_count
            });
            // --------------------------
        },
        error: function () { alert('error'); }
    });