javascript - ASP.NET 每 10 秒触发一次来自 javascript 的 CallbackPanel 回调
问题描述
我试图每 10 秒在我的 WebFormUserControl 中使用 javascript 触发 CallbackPanel 的回调。
我可以使用 ASPxButton 和 ClientSideEvents 触发它,但我的目标是每 10 秒自动启动一次。
我的用户控制代码:
<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>
有可能实现我的目标吗?
如果是这样,请提供一些有用的代码。谢谢 :)
解决方案
您可以__doPostBack
在传递 CallBackPanel 的 id 时使用。像这样:
<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);
}
推荐阅读
- c# - C# 与指针互锁
- sql-server - SQL Server 字符编码
- c++ - 创建 SDL_Window unique_ptr
- python - 用于方法的 Python CLI argprse
- razor - 最佳实践:Razor 页面之间的共享代码
- javascript - Javascript 搜索特定邮政编码
- rust - 当一个结构有两个生命周期参数时,这意味着什么?
- sockets - 如何在聚合物 3 PWA 入门套件应用程序中导入 socket.io.client javascript 以进行服务器构建
- python - 我应该提出自定义异常吗?
- php - 使用 PHP 中的 files.upload 将文件上传到 slack