我的网页上有两个更新的面板来显示一些数据,我在这样的特定时间之后刷新了面板
<script language="javascript" type="text/javascript">
window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 2000);
</script>
这个面板每两秒刷新一次。问题是我在gridview中有一个子网格的另一个功能,用这样的正负图像打开和关闭
function divexpandcollapse(divname) {
var div = document.getElementById(divname);
var img = document.getElementById('img' + divname);
if (div.style.display == "none") {
div.style.display = "inline";
img.src = "../Images/Minus.gif";
window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 20000);
} else {
div.style.display = "none";
img.src = "../Images/Plus.gif";
window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 2000);
}
}
我正在尝试将回发时间从2秒增加到20当用户clikc加上signivew内的加号时再次点击减号然后时间应该再次2秒。但是通过下面的代码它不会相应地改变时间。任何人都告诉我这个方法里到底有什么错误,或者我需要做些什么才能得到我的要求.plz help
答案 0 :(得分:0)
问题是您没有清除任何可能已附加的间隔。您需要跟踪间隔,如果有,请将其删除。
<script language="javascript" type="text/javascript">
var timer = window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 2000);
</script>
和
function divexpandcollapse(divname) {
var div = document.getElementById(divname);
var img = document.getElementById('img' + divname);
if (window.timer) {
window.clearInterval(timer);
}
if (div.style.display == "none") {
div.style.display = "inline";
img.src = "../Images/Minus.gif";
timer = window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 20000);
} else {
div.style.display = "none";
img.src = "../Images/Plus.gif";
timer = window.setInterval(function () {
__doPostBack('<%= UpdatePanel1.ClientID %>', '');
__doPostBack('<%= UpdatePanel3.ClientID %>', '');
}, 2000);
}
}