Gridview Timer定时刷新无效,为什么?要求代码最好
asp.net:
我把一个gridview,timer放进updatepanel里,希望能自动刷新gridview里的内容,但gridview没反应,
我将gridview数据绑定代码放进一个button点击事件里,将button放进同一个updatepanel里,点击按钮,gridview可以刷新一次显示最新数据,可在timer的tick事件里就没任何反应,更可怕的是我在timer_tick中强行触发button_click事件:button_click(null,null),居然也没反应!!反正就是触发不了timer,能用快速度解决下吗?下面是我的代码:
后台代码:Default2.aspx.cs
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.divGridView.Attributes["style"] = "width:570px;overflow:auto;"
+ (GridView1.Rows.Count >= 25 ? "height:480px" : string.Empty);
ShowAuthors();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
GridView1.DataBind();
}
public void ShowAuthors()
{
OracleDataAdapter sda = new OracleDataAdapter("select rownum as id,topictrim,topicname from t_topic", "Data Source=NAVECODB_120;user=System;password=1");
DataTable dt = new DataTable();
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
ShowAuthors();
}
}
前台代码:Default2.aspx
<body>
<form id="form1" runat="server">
<div>
<div id="divGridView" runat="server" >
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Timer id="Timer1" runat="server" Interval="100" OnTick="Timer1_Tick">
</asp:Timer>
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="刷新" OnClick="Button1_Click" />
</div>
</div>
</form>
</body>