2010-10-13 157 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