在clientide pageLoad()函数中我试图获取多视图活动索引并在5秒后回发到我的updatepanel1仅当活动索引为2时
以下代码:
<script type="text/javascript" language="JavaScript">
function pageLoad() {
if (document.getElementById('MultiViewManage').getAttribute("ActiveViewIndex") == 2) {
window.setTimeout("__doPostBack('UpdatePanel1','')",5000);
}
}
</script>
我得到null exeption或某种错误我做错了什么? 感谢
答案 0 :(得分:1)
如果用户在MultiView的ActiveViewIndex=2
上,要在5秒后自动刷新更新面板,请在UpdatePanel中使用ASP.Net Timer,每隔5秒触发一次异步回发。我会嵌入应该在单独的UpdatePanel中刷新的视图内容。
<asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="5000"></asp:Timer>
<asp:UpdatePanel ID="UpdPanelRefresh" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
.....
然后在代码隐藏中的Timer_Tick事件处理程序中刷新UpdatePanel的内容。
我会将所有视图嵌入到外部UpdatePanel旁边的单独UpdatePanel中。如果切换视图,则必须触发外部UpdatePanel。但timer-tick将触发属于具有ActiveViewIndex 2的视图的内部UpdatePanel