ASP.NET вызывает CallbackPanel обратный вызов из JavaScript каждые 10 секунд - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь вызвать обратный вызов CallbackPanel с помощью javascript в моем WebFormUserControl каждые 10 секунд.

Я могу вызвать его с помощью ASPxButton и ClientSideEvents, но моя цель - запускать его автоматически каждые 10 секунд.
Мой код UserControl:

<dxcb:ASPxCallbackPanel ID="panel" runat="server" ClientInstanceName="panel" OnCallback="ASPxCallbackPanel1_Callback" Width="200px">
            <PanelCollection>
                <dxcb:PanelContent runat="server">
                    <dxcb:ASPxImage ID="ASPxImage1" runat="server" ImageUrl="~/Images/Image1.png" ShowLoadingImage="true"></dxcb:ASPxImage>
                </dxcb:PanelContent>
            </PanelCollection>
</dxcb:ASPxCallbackPanel>
 <dxcb:ASPxButton ID="ASPxButton1" runat="server" AutoPostBack="false" Text="ASPxButton">
            <ClientSideEvents Click="function(s, e) { panel.PerformCallback();  }" />
 </dxcb:ASPxButton>

Я пытался запустить его 10 секунд вот так:

<script type='text/javascript'>
setInterval(function () { panel.PerformCallback(); }, 10000);
</script>

Возможно ли достичь моей цели?
Если да, пожалуйста, предоставьте некоторый полезный код. Спасибо:)

1 Ответ

0 голосов
/ 18 января 2019

Вы можете использовать __doPostBack при передаче идентификатора вашей CallBackPanel. Как это:

<script type='text/javascript'>
    setInterval(function () {
        __doPostBack("<%= panel.ClientID %>", "PanelCalledBack");
    }, 10000);
</script>

Затем проверьте соответствие переданного PanelCalledBack аргумента в событии OnLoad панели (если оно есть) или в событии Page_Load:

if (Request.Params.Get("__EVENTARGUMENT")?.Trim().IndexOf("PanelCalledBack") != -1)
{
    ASPxCallbackPanel1_Callback(panel, null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...