0

Asp.net WebフォームにLabelTotalNumberという名前のラベルを配置しました。フォームを更新せずにjQueryで1分ごとに値を更新したい。どうすればいいのですか?

この方法は、Page_Load イベントで 1 回だけ実行できます。

var sqlResult = (From obj in db.RequestList
                 where obj.IsApproved == "Approved"
                 select obj).count();
LabelTotalNumber.text = sqlResult;
4

2 に答える 2

1

Microsoft のすぐに使用できるUpdatePanel と Timer を使用できます。

Microsoft ボックスの内容が気に入らず、jQuery/javascript を使用したい場合は、一定の間隔で (window.setIntervalメソッドを使用して) AJAX 要求をASP.NET PageMethodに送信できます(この場合、基本的には少し自分自身を与える必要があります)。 jQuery のドキュメントチュートリアルを読んだり、少しコードを書いたりするのは面倒です)。

したがって、ASP.NET PageMethod は次のようになります。

[WebMethod]
public static int Approved()
{
    return (from obj in db.RequestList
            where obj.IsApproved == "Approved"
            select obj).Count();
}

次に、この PageMethod を 1 分ごとに AJAX リクエストで叩きます。

window.setInterval(function() {
    $.ajax({
        url: '/foo.aspx/Approved',
        type: 'POST',
        contentType: 'application/json',
        data: '{ }',
        success: function(result) {
            var count = result.d;
            // TODO: do something with the count returned by the server
            // like assigning it to a label or something:
            $('#someLabelId').html(count);
        }
    });
}, 60 * 1000);
于 2012-04-16T22:02:04.897 に答える
0

jQuery ajaxを使用して、データベース操作を実行できるサーバーページを呼び出すことができます。setIntervalメソッドを使用して、特定の間隔でスクリプトを実行します。

var tid = setInterval(UpdateData, 60000);
function UpdateData() {
  $.get("yourserverpage.ashx",function(data){
   $("#yourDiv").html(data)
 });
}

Assumungyourserverpage.ashxは、データベースの更新が呼び出されたときに処理します。yourDivは、更新されたデータを表示するdivです(yourserverpage.ashx表示するマークアップを返すと仮定します)。

于 2012-04-16T22:07:09.653 に答える