1

頻繁にデータが変更されるデータソースにバインドされた ascx コントロールがあります。X秒ごとにascxコントロールのポストバック、再バインド、リフレッシュを行う簡単な方法はありますか? ascx コントロールは更新パネルにあります。

4

3 に答える 3

5

既に使用しているため、AJAX ツールキットのタイマー コントロールを使用します。

<asp:Timer ID="tmrPolling" runat="server" Interval="10000" ontick="tmrPolling_Tick"></asp:Timer>

次のようなトリガーを更新パネルに追加します。

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="tmrPolling" EventName="Tick" />
</Triggers>

tmrPolling_Tick次に、ハンドラーを実装します。

protected void tmrPolling_Tick(object sender, EventArgs e)
{
    // Change your update panel controls and data here.
}

更新パネルのコンテンツ領域内にタイマーを追加しないでください。

于 2009-11-13T23:42:52.853 に答える
2

クライアント スクリプトでは、タイマーを作成し、__doPostBack() を呼び出して更新パネルを強制的に更新できます。詳しくはこちらの記事をご覧ください。

于 2009-11-13T23:44:19.590 に答える
0

明快さ/怠惰のために維持されたコードの繰り返し。

function pageLoad(sender, args) 
{
   setTimeout(refreshPanel, 5000); // 5 seconds  
}

function requestEnd(sender, args)
{
   // Check for AJAX request errors if you'd like
   setTimeout(refreshPanel, 5000); // 5 seconds
}

function refreshPanel()
{
   __doPostBack('UpdatePanelIDHere', '');"
}

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(requestEnd);
于 2009-11-13T23:46:46.187 に答える