2012-05-07 2 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 «s источник данных должен быть заполнен с фоновым кодом (на основе реального часа), например:

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

Вы имели этот код работает в течение более часа, и это не Postback? Что вы видели при отладке с меньшим интервалом? –

+0

Вы ищете кэширование данных в течение 1 часа? –

+0

Где вы пишете этот код? есть ли это на Timer's Tick Event? – Sankalp

ответ

3

Вы написали этот код на мероприятии Ticker Timer's Tick?

В идеале это должно быть на отметке Timer Tick. У вашего таймера нет связанного события TICK. Она должна быть обновлена ​​с OnTick события (пример, приведенный ниже):

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

Следует отметить две вещи: поскольку он использует VB.NET, он мог бы связать событие с помощью 'Handles Timer1.Tick', и, во-вторых, я бы рекомендовал иметь код в отдельном методе, вызываемом обработчиком событий tick, так как он, вероятно, захочет вызвать тот же код на первой странице. Load. –

+0

Согласен, спасибо за исправление. – Sankalp

+0

@ Sankalp: Спасибо, что работает. Но теперь почему тикер всегда перезагружает gridview каждые 1 секунду? Я установил интервал в «3600000» ... –

 Смежные вопросы

  • Нет связанных вопросов^_^