2011-02-01 79 views
0

在客户方页面加载()函数IM试图让多视点活动指数和回发到我的updatepanel1 5秒后只有活跃指数是2刷新MuliView的观点,每5秒

下面的代码:

<script type="text/javascript" language="JavaScript"> 
    function pageLoad() { 
     if (document.getElementById('MultiViewManage').getAttribute("ActiveViewIndex") == 2) { 
      window.setTimeout("__doPostBack('UpdatePanel1','')",5000); 
     } 
    } 
</script> 

即时通知null或者某种错误我做错了什么? 谢谢

+0

您无法访问客户端上的MultiView,因为它呈现为简单的div。所以你也无法访问属性(什么会是btw。一个可怕的地方来存储这样的属性)来获取ActiveViewIndex。 如果可能,您应该在服务器上执行此操作。 – 2011-02-01 15:30:09

回答

1

要在5秒后自动刷新更新面板(如果用户位于MultiView的ActiveViewIndex=2上),请在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> 
..... 

然后刷新代码隐藏你的UpdatePanel在Timer_Tick事件处理程序的内容。

我会在外部UpdatePanel旁边的单独UpdatePanel中嵌入所有视图。如果切换视图,则必须触发外部UpdatePanel。但计时器滴答声将触发属于使用ActiveViewIndex查看的内部UpdatePanel 2