2012-04-26 11 views
1

私のASP.Netページでは、jQuery AJAXを使用してスクロールしながらサーバーからデータをロードしています。私はこの方法を使用しています。なぜなら、AJAXを使用してサーバーからデータをロードすると、アプリケーションが単独で画面に表示されるデータが最初に読み込まれ、必要に応じてさらに多くのデータがサーバーからロードされるため、ユーザーがスクロールします。私は、次のコードを使用しています。(私の条件が満たされる)いくつかの時点でWebMethodとjQueryの共通変数へのアクセス

$(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; 
} 

が、私は、サーバーからのデータのロードを停止したいです。だから私はのブール変数isReadyを設定し、WebMethodを呼び出すかどうかを判断するためにjQueryのこの変数の値をチェックすることを考えました。残念ながら、WebServicesでViewStateを使用することはできません.jQueryでViewStateにアクセスする方法もわかりません。

ViewStateの代替手段として、WebMethodとjQueryの両方からアクセスできるものは何ですか?

答えて

1

私が考えることができる最も良い方法は、カスタムクラスオブジェクトまたは文字列[]を送信することです。

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

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

希望します。

+0

+1; 'string []'を使用してjQueryに渡します。万が一、jQueryからViewStateにアクセスする方法を知っていますか? – user1135357

+0

私は恐れていません、私は知っていませんが、あなたはこのリンクに従うことができますhttp://stackoverflow.com/questions/1050902/getting-values-from-viewstate-using-jquery –

+0

それは良い練習であるかどうかわかりませんが、私は隠されたフィールドを使用しました。ご協力いただきありがとうございます – user1135357

関連する問題