0

setInterval を使用して X 秒ごとに LoadFile() 関数を呼び出そうとしています。これをドキュメント準備完了関数で呼び出したいのですが、aspx ページの scriptmanager が EnablePageMethods を true に設定します。しかし、これは機能していないようで、PageMethod が定義されていないというエラーが返されます。私のコードは以下のとおりです


<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)
        {

        }
    }

私は Ajax に比較的慣れていません。どんな助けや洞察も大歓迎です。

ありがとう、

4

1 に答える 1

0

PageMethods で使用するには、メソッドを static として宣言する必要があります。

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

よろしくお願いします

于 2012-05-09T10:08:33.957 に答える