Gridview随时间变化数据

时间:2011-05-17 17:37:42

标签: asp.net ajax sql-server-2008 gridview asp.net-ajax

我正在开发Visual Studio 2010和SQL Server 2008 我想创建一个应用程序,我的Gridview应该更改数据(显示在网站中)  关于时间


意味着说

col1  | col2 
name1 |  age1 
name2 |  age2 
name3 |  age3

after 10 sec say 
col1  | col2 
name4 |  age4 
name5 |  age5 
name6 |  age6

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

最简单的方法是使用ASP.NET AJAX计时器控件:http://ajax.net-tutorials.com/controls/timer-control/ 10秒后,tick事件将触发,您可以将所有内容包装在UpdatePanel中,以便为用户提供完整的AJAX感觉。

HTH。

答案 1 :(得分:1)

使用Comet:Comet是一种Web应用程序模型,其中长时间持有的HTTP请求允许Web服务器将数据推送到浏览器,而浏览器没有明确请求它。

Creating Comet applications with ASP.NET
Scalable COMET Combined with ASP.NET

  

此代码未准备好生产;它   旨在演示一个   使用COMET的理论解决方案   ASP.NET。本文涵盖了   COMET的服务器端实现   以及如何对抗可扩展性   问题。演示客户端   代码,我会发布一篇较小的文章   很快就证明了这一点   使用COMET的tic-tac-toe游戏   我提到的线程池机制   下面,这应该给你一些想法   关于在现实世界中使用它   应用


ASP.NET and Comet: Bringing Sockets Back
ASP.NET Comet Library

答案 2 :(得分:1)

这个我已经做到了实现上述问题来解决 website1.aspx

<asp:ScriptManager ID="ScriptManager1" runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Timer ID="Timer1" runat="server" OnTick="UpdateTimer_Tick" Interval="5000">
                    </asp:Timer>
                      <Triggers>
                    <asp:AsyncPostBackTrigger controlid="Timer1" eventname="Tick" />
                          <asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="1" 
                              EnableModelValidation="True" AutoGenerateColumns="False">
                              <PagerSettings Visible="False" />
                              <columns>
                               <asp:ImageField DataImageUrlField="Image" >
                                   <ControlStyle Height="500px" Width="860px" />
                                  </asp:ImageField>
                              </columns>
                          </asp:GridView>

                          <br />
                </Triggers>
                </ContentTemplate>
                           </asp:UpdatePanel>

website1.aspx.cs

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
         LoadData();
    }

    protected void UpdateTimer_Tick(object sender, EventArgs e)
    {
        int pagecount = GridView1.PageCount;
         int pageIndex = GridView1.PageIndex;
         if (pageIndex != pagecount)
         {
             GridView1.PageIndex = pageIndex + 1;
             LoadData();
             Label1.Text = "" + GridView1.PageIndex++;

         }
         if (pageIndex == pagecount-1)
         {
             pageIndex = pageIndex - pagecount;
             GridView1.PageIndex = pageIndex + 1;
             LoadData();
             Label1.Text = "" + GridView1.PageIndex++;
         }

    }
    private void LoadData()
    {
        using (SqlConnection connection = new SqlConnection("Data Source=CJ-PC\\SQLEXPRESS;Initial Catalog=Online_Interaction;Integrated Security=True"))
        {
            using (SqlCommand command = new SqlCommand("Select [Image] from Picture_album", connection))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(command))
                {
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
            }
        }
    }

Thanx帮助stackoverflow