私は内部にDataList要素を持つUpdatePanelを使用します。 10秒ごとにDBから内容を更新したい。私はポストバックの後でのみ更新が発生することに気づいた。私はC#Timer.Tickイベントでポストバックを上げるには?
protected void Timer1_Tick(object sender, EventArgs e)
{
this.RaisePostBackEvent(Timer1, "");
}
私は内部にDataList要素を持つUpdatePanelを使用します。 10秒ごとにDBから内容を更新したい。私はポストバックの後でのみ更新が発生することに気づいた。私はC#Timer.Tickイベントでポストバックを上げるには?
protected void Timer1_Tick(object sender, EventArgs e)
{
this.RaisePostBackEvent(Timer1, "");
}
は、すべてのコードビハインドにのみ、サーバー上で実行されていることを忘れないでください... RaisePostBackEvent
メソッドを使用するようにしようと試みたが、スタックオーバーフロー例外を持って後ろに私はコードで
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:DataList ID="lstComputers" runat="server" DataKeyField="ComputerID" DataSourceID="ComputersDataSource"
OnItemDataBound="lstComputers_ItemDataBound" OnItemCommand="lstComputers_ItemCommand">
<HeaderTemplate>
// Header data
</HeaderTemplate>
<ItemTemplate>
// Item template
</ItemTemplate>
</asp:DataList>
<asp:UpdateProgress ID="UpdateProgress2" runat="server">
<ProgressTemplate>
<img border="0" src="images/loading.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
のようなコードをしました。したがって、Timer1_Tick()メソッドが実行されている場合、Timer はであり、PostBackが発生します。
そのメソッドを実行しているStackOverflowExceptionを取得するのは、単にそれ自体を無限に呼び出すためです。再帰的に再呼び出しするのではなく、そのメソッドに更新コードを配置する必要があります。
setTimeout()およびsetInterval()JavaScript関数を見てください。これはすべて、サーバー側ではなく、クライアント上で発生する必要があります。
protected void Timer1_Tick(object sender, EventArgs e)
{
lstComputers.DataBind();
}
は
をリロードデータの問題を解決しました