1

在我的 ASP.Net 页面中,我在使用 jQuery AJAX 滚动时从服务器加载数据。我正在使用这种方法,因为使用 AJAX 从服务器加载数据将有助于任何应用程序提高其性能,因为单独显示在屏幕上的数据是第一次加载,如果需要,更多数据将从服务器加载为用户滚动。我正在使用以下代码:

$(document).ready(

        function () {
            $contentLoadTriggered = false;
            $(window).scroll(

            function () {
                if ($(window).scrollTop() >= ($("#wrapperDiv").height() - $(window).height()) && $contentLoadTriggered == false) { //here I want to check for the isReady variable in ViewState
                    $contentLoadTriggered = true;
                    $.ajax({
                        type: "POST",
                        url: "MyPage.aspx/GetDataFromServer",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        async: true,
                        cache: false,
                        success: function (msg) {
                            $("#wrapperDiv").append(msg.d);
                            $contentLoadTriggered = false;
                        },
                        error: function (x, e) {
                            alert("The call to the server side failed. " + x.responseText);
                        }
                    });
                }
            });
        });

[WebMethod]
public static string GetDataFromServer()
{
    string resp = string.Empty;
    for (int i = 1; i <= 10; i++)
    {
        resp += "<p><span>" + i + "</span> This content is dynamically appended to the existing content on scrolling.</p>";
    }

    //if (myConidition)
        //ViewState["isReady"] = true;

    return resp;
}

在某个时候(当我的条件得到满足时),我想停止从服务器加载数据。所以我想isReadyViewState然后在 jQuery 中检查这个变量的值来判断是否调用 WebMethod。不幸的是,我不能在 WebServices 中使用 ViewState,我也不知道如何在 jQuery 中访问 ViewState。

我可以使用什么来替代 ViewState,它可以从 WebMethod 和 jQuery 访问?

4

1 回答 1

1

我能想到的最好方法是发送自定义类对象或字符串 [];

Public class CustomClass
{
    public string HTML { get; set; }
    public bool Load  { get; set; }
}

[WebMethod()]
public static StatusViewModel  GetDataFromServer()
{
    // do work
    return CustomObject;
}

希望能帮助到你。

于 2012-04-26T08:21:27.803 回答