我在Asp.net webform上放置了一个名为LabelTotalNumber的标签。我希望jQuery每隔一分钟更新一次值而不刷新表单。我该怎么做?
我可以在Page_Load事件中这样做一次。
var sqlResult = (From obj in db.RequestList
where obj.IsApproved == "Approved"
select obj).count();
LabelTotalNumber.text = sqlResult;
答案 0 :(得分:1)
您可以使用UpdatePanel and a Timer开箱即用的Microsoft框。
如果您不喜欢Microsoft框的内容并想使用jQuery / javascript,您可以定期(使用window.setInterval
方法)向ASP.NET PageMethod发送AJAX请求(在这种情况下)基本上你必须给自己一点痛苦才能阅读jQuery的documentation / tutorials并编写一些代码。
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);
答案 1 :(得分:0)
您可以使用jQuery ajax来调用可以执行数据库操作的服务器页面。 使用setInterval方法在特定时间间隔内执行脚本。
var tid = setInterval(UpdateData, 60000);
function UpdateData() {
$.get("yourserverpage.ashx",function(data){
$("#yourDiv").html(data)
});
}
Assumung yourserverpage.ashx
将在调用时处理您的数据库更新,而yourDiv是您要显示更新数据的div(假设yourserverpage.ashx
正在返回要显示的标记。