【发布时间】:2011-03-16 15:47:58
【问题描述】:
当 ASP.net 用户控制到 aspx 页面时,我试图触发 Javascript 调用。
该网站允许用户将用户控件添加到页面(类似于将小部件等添加到类似 google 小部件的页面)。但是当添加控件时,javascript不会触发,只有刷新页面才会触发javascript。如果下次访问该网站并且控件仍然存在,则 JavaScript 也会触发。
是否需要使用 RegisterClientScript 方法在控件加载或 OnPreRender 事件上注册调用 (setAutoTimer())。
在用户控件中,我在 ascx 文件的开头有这个:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
if ($("#alarmList").length) {
setAutoTimer();
getData();
}
});
function setAutoTimer() {
setInterval(getData, 10000);
}
function getData() {
$.ajax({
type: "POST",
url: "Service.asmx/getListData
data: "{'inverterid': '" + "1'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
AjaxSucceeded(msg);
},
error: AjaxFailed
});
}
function AjaxSucceeded(result) {
$("#alarmList").empty();
$("#alarmsListTemplate").tmpl(result.d)
.appendTo("#alarmList");
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
</script>
【问题讨论】: