0

我在 Asp.net webform 上放置了一个名为 LabelTotalNumber 的标签。我想通过 jQuery 每分钟更新一个值而不刷新表单。我该怎么做?

我可以在 Page_Load 事件中这样做一次。

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

2 回答 2

1

开箱即用您可以使用UpdatePanel 和 Timer

如果您不喜欢 Microsoft 框的内容并想使用 jQuery/javascript,您可以定期(使用该window.setInterval方法)向ASP.NET PageMethod发送 AJAX 请求(在这种情况下,基本上您将不得不给自己一点阅读 jQuery 的文档/教程并编写一些代码很痛苦)。

所以一个 ASP.NET PageMethod:

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

然后每隔一分钟左右用 AJAX 请求敲击这个 PageMethod:

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 回答