2012-05-09 9 views
0

setIntervalを使用してX秒ごとにLoadFile()関数を呼び出そうとしています。これをドキュメントの準備関数で呼び出すと、aspxページのscriptmanagerがEnablePageMethodsをtrueに設定します。 しかし、これは動作しないようで、PageMethodは定義されていないエラーを返します。私のコードは、私はアヤックスに比較的新しいですPageMethodsでのsetIntervalの使用


<script type="text/javascript" > 
    $(document).ready(function() { 
     setInterval(function() { 
      PageMethods.LoadFile();    
     }, 1000); 
    }); 
</script> 

[WebMethod] 
    public void LoadFile() 
    { 
     Collection<string> stringcollection = new Collection<string>(); 
     divLogSummary2.InnerHtml = ""; 
     try 
     { 
      StringBuilder content = new StringBuilder(); 
      if (string.IsNullOrEmpty(logFilePath)) 
      { 
       return; 
      } 

      if (File.Exists(logFilePath)) 
      { 

       using (FileStream fs = new FileStream(logFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) 
       { 
        using (StreamReader sr = new StreamReader(fs)) 
        { 
         while (!sr.EndOfStream) 
         { 
          stringcollection.Add(sr.ReadLine()); 
         } 
        }       

       } 
       for (int i = stringcollection.Count - 30 ; i < stringcollection.Count; i++) 
       { 
        divLogSummary2.InnerHtml = divLogSummary2.InnerHtml + " <BR> " +      stringcollection[i]; 
       } 

      } 
     } 
     catch (Exception) 
     { 

     } 
    } 

以下の通りである 、任意のヘルプや洞察力がはるかに高く評価されます。

おかげで、

答えて

0

あなたの方法はPageMethodsで使用するためにはstaticとして宣言されなければなりません。 soltuionため

[WebMethod] 
public static void LoadFile() 
{ 
    ..... 
} 

敬具

+0

ありがとう、それはLoadFileメソッドが呼び出される。すなわち流れに対して動作しませんが、私は私が作るのdivのinnerHTMLを(更新する必要があるとして、それは静的に宣言することはできませんメソッドは本質的に非静的)。 – Diya

+0

はい、Pagemethodsでは不便です。ただし、javascriptでUIを更新するには、コードの背後にあるdoindを使用する必要はありません。 PageMethodsからいくつかのデータを返し、jsを使用してUIを更新してください。 – Oscar

+0

オスカーに感謝、私はそれを働かせることができた:) – Diya

関連する問題