2010-10-13 207 views
1

ASP.NET自動刷新gridview updatepanel計時器

我是新來的ajax。

我正在致力於visual studio 2005。我安裝ajax Min4setup,並將控件工具包添加到控件工具欄。

我創建了一個新網站Ajax-Enabled,然後將舊網站中的現有項目(所有頁面)添加到新網站。

我在page.aspx和page.aspx.vb中的其他代碼中編寫了下面的代碼,但沒有任何反應,計時器事件未觸發。

代碼:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="8000"  Enabled="true"> 
</asp:Timer> 

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
</Triggers> 
<ContentTemplate> 
<asp:Label ID="Label1" runat="server" Text="test" /> 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" 
              DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" Width="616px" BorderStyle="Outset"> 
              <RowStyle BackColor="#EFF3FB" /> 
              <Columns> 
               <asp:BoundField DataField="Sender" HeaderText="Sender" 
               SortExpression="MO_NICKNAME_SOURCE_LOG_HIS" /> 
<asp:BoundField DataField="DataChat" HeaderText="Conversation" SortExpression="DataChat" /> 
<asp:TemplateField HeaderText="Date" SortExpression="DATETIMEIN_LOG_HIS"> 
<EditItemTemplate> 
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("DATETIMEIN_LOG_HIS") %>'></asp:TextBox> 
</EditItemTemplate> 
<ItemTemplate> 
<asp:Label ID="Label2" runat="server" Text='<%# Bind("DATETIMEIN_LOG_HIS") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
<EditRowStyle BackColor="#2461BF" /> 
<AlternatingRowStyle BackColor="White" /> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:OfflineChat_ConnectionString %>" 
SelectCommand="SP_GET_OFFLINE_USER_CHAT" SelectCommandType="StoredProcedure"> 
<SelectParameters> 
<asp:SessionParameter Name="MO_OFFLINEUSER" SessionField="ID" Type="String" /> 
<asp:QueryStringParameter Name="MO_NICKNAME_REALUSER" QueryStringField="realuserNick" 
               Type="String" /> 
</SelectParameters> 
</asp:SqlDataSource> 
</ContentTemplate> 
</asp:UpdatePanel> 

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) 
{ 
    Label1.Text = "Grid Refreshed at: " 
    '& DateTime.Now.ToString 
    GridView1.DataBind() 
    UpdatePanel1.Update(); 
} 

任何意見或建議將不勝感激。

最好的問候,

回答

1

timer1.Start()啓動定時器。 清除GridView,設置GridView1.DataSet = null並重新加載綁定。

+0

time1.start()應該寫在後面的代碼中? – Crefly 2010-10-13 07:34:09

+0

調試代碼時,Sub Timer1_Tick永遠不會觸發 – Crefly 2010-10-13 07:35:03

+0

您是否在任何地方啓動計時器?定時器沒有開始打勾。 – martinhodler 2010-10-13 07:52:30