2012-05-07 272 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」... –