Как я могу иметь обратную передачу ascx и обновляться автоматически каждые X секунд? - PullRequest
1 голос
/ 14 ноября 2009

У меня есть элемент управления ascx, связанный с источником данных с часто меняющимися данными. Есть ли быстрый способ иметь постбэк управления ascx, перепривязывать и обновлять себя каждые X секунд. Элемент управления ascx находится на панели обновлений.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2009

Используйте элемент управления таймером из набора инструментов 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.
}

Не добавляйте таймер в область содержимого панели обновления.

2 голосов
/ 14 ноября 2009

В клиентском скрипте вы можете создать таймер и вызвать __doPostBack (), чтобы принудительно обновить панель обновления. Пожалуйста, см. Эту статью для деталей .

0 голосов
/ 14 ноября 2009

Повторение кода поддерживается для ясности / лени.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...