计时器的ASP.NET更新数据列表不起作用

问题描述

我有一个updatepanel,里面有labeldatalist

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">     
  <ContentTemplate>    
      <asp:Timer ID="Timer1" runat="server" Interval="2000" Enabled="True" ontick="Timer1_Tick"></asp:Timer>
      Tick <asp:Label ID="LabelTick" runat="server" Text=""></asp:Label>
      <asp:DataList ID="dl1" runat="server" DataSourceID="sqlDataSource1" RepeatColumns = "4" CellSpacing = "3" RepeatLayout = "Table">
         <ItemTemplate>
            ...
         </ItemTemplate>
      </asp:DataList>
      <asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT ..."></asp:sqlDataSource> 
   </ContentTemplate>
</asp:UpdatePanel>

在后面的代码中,每次滴答之后我都会更新数据绑定:

Protected Sub Timer1_Tick(ByVal sender As Object,ByVal e As EventArgs) Handles Timer1.Tick

    dl1.DataSourceID = sqlDataSource1.ID
    dl1.DataBind()

    LabelTick.Text = DateTime.Now.ToString()

End Sub

label每2秒正确更新一次,这意味着计时器正确运行。但是DataList不会刷新,它只会在页面加载后刷新一次。 为什么?

解决方法

在壁虱通话结束时:

 UpdatePanel1.Update()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...