2012-05-07 216 views
1

如何刷新gridview 而不刷新整页刷新Gridview而不刷新整页(ASP.Net)

我有这样的代码:

<asp:Timer ID="Timer1" runat="server" Interval="3600000"> 
</asp:Timer> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:Panel ID="Panel1" runat="server" Height="250px" Width="250px"> 
      <asp:GridView ID="Gridview1" runat="server" ></asp:GridView> 
     </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Gridview1的数据源应该从后台代码填写(基于真实小时),例如:

Dim DT As New System.Data.DataTable 
    Dim reader As SqlCeDataReader 
    Using myCEConnection As New SqlCeConnection(myCEConnectionString) 
     myCEConnection.Open() 
     Using myCommand As SqlCeCommand = myCEConnection.CreateCommand() 
      myCommand.CommandText = "SELECT ScheduleID FROM Schedule " & _ 
            "WHERE (Hour = '"& Hour(Now) &"')" 
      reader = myCommand.ExecuteReader() 

      DT.Load(reader) 
     End Using 
     myCEConnection.Close() 
    End Using 

    Gridview1.DataSource = DT.DefaultView 
    Gridview1.DataBind() 

Gridview1应每1小时刷新一次。我试了一下代码,但什么也没得到。我怎样才能做到这一点?先谢谢你。

+0

你有这个代码,一个多小时运行,并没有回传: 应该用(下面给出的例子)ontick事件进行更新?您在调试中看到了什么,间隔时间更短? –

+0

你正在寻找数据缓存1小时? –

+0

你在哪里写这段代码?它是否在定时器的滴答事件? – Sankalp

回答

3

你是否在Timer's Tick Event上写过这段代码?

理想情况下,它应该在定时器的滴答事件上。您的计时器没有任何关联的TICK事件。

<asp:Timer ID="timer" runat="server" ontick="timer_Tick"></asp:Timer> 
+0

有两点需要指出:因为他使用VB.NET,所以他可以使用'Handles Timer1.Tick'连接事件,其次,我建议让代码在一个单独的方法中,由tick事件处理函数调用,因为他可能会想要在第一个Page.Load上调用相同的代码。 –

+0

我同意,感谢您的更正。 – Sankalp

+0

@Sankalp:感谢它的工作。但是现在为什么ticker总是每隔1秒重新加载一次gridview?我已将间隔设置为“3600000”... –