AsyncPostBackTrigger 在我的应用程序中不起作用
我遇到一个有趣的问题。我们正在使用母版页运行一个网站,在其中一个页面中,我需要创建一个更新面板,该面板将在完成时显示组 SSID。
因此,在内容占位符之一中,我将其放入:
<asp:ScriptManager ID="scManagerConfirm" runat="server" />
<asp:Timer ID="tmrStatus" OnTick="tmrStatus_Tick" Enabled="false" runat="server" Interval="5000" />
<asp:UpdatePanel ID="upnlStatus" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnConfirm" />
<asp:AsyncPostBackTrigger ControlID="tmrStatus" />
</Triggers>
<ContentTemplate>
<asp:Panel ID="pnlStatus" CssClass="appStoreStatus" Visible="false" runat="server">
<p><asp:Literal ID="litStatusText" runat="server" Text="<%$ Resources:GRes, StatusProcessing %>"></asp:Literal></p>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnConfirm" OnClick="btnConfirm_OnClick" Text="<%$ Resources:GRes, Confirm %>" CausesValidation="true" UseSubmitBehavior="false" runat="server" />
后台代码很简单:
protected enum RequestStatus { Unprocessed, Processed }
protected void Page_Load( object sender, EventArgs e ) {
}
protected void btnConfirm_OnClick( object sender, EventArgs e ) {
pnlStatus.Visible = true;
tmrStatus.Enabled = true;
}
protected void tmrStatus_Tick( object sender, EventArgs e ) {
if (GetStatus() == RequestStatus.Processed) {
litStatusText.Text = "SSID: " + GetSSID();
tmrStatus.Enabled = false;
}
}
private String GetSSID() {
return "S-12345-1235-1235-1235";
}
private RequestStatus GetStatus() {
return RequestStatus.Processed;
}
现在,我遇到的问题是这不起作用。如果我使用 PostBackTriggers 而不是异步触发器,它会起作用。然而,这不是我想要的功能。我尝试将按钮和计时器放入 UpdatePanel 中,但无济于事。
有什么想法这可能有什么问题吗?
I am experiencing an interesting issue. We are running a website using masterpage and in one of the pages, I need to create an update panel that will display group SSID on completion.
So, in one of the content placesholders, I put this in:
<asp:ScriptManager ID="scManagerConfirm" runat="server" />
<asp:Timer ID="tmrStatus" OnTick="tmrStatus_Tick" Enabled="false" runat="server" Interval="5000" />
<asp:UpdatePanel ID="upnlStatus" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnConfirm" />
<asp:AsyncPostBackTrigger ControlID="tmrStatus" />
</Triggers>
<ContentTemplate>
<asp:Panel ID="pnlStatus" CssClass="appStoreStatus" Visible="false" runat="server">
<p><asp:Literal ID="litStatusText" runat="server" Text="<%$ Resources:GRes, StatusProcessing %>"></asp:Literal></p>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnConfirm" OnClick="btnConfirm_OnClick" Text="<%$ Resources:GRes, Confirm %>" CausesValidation="true" UseSubmitBehavior="false" runat="server" />
background code is simple:
protected enum RequestStatus { Unprocessed, Processed }
protected void Page_Load( object sender, EventArgs e ) {
}
protected void btnConfirm_OnClick( object sender, EventArgs e ) {
pnlStatus.Visible = true;
tmrStatus.Enabled = true;
}
protected void tmrStatus_Tick( object sender, EventArgs e ) {
if (GetStatus() == RequestStatus.Processed) {
litStatusText.Text = "SSID: " + GetSSID();
tmrStatus.Enabled = false;
}
}
private String GetSSID() {
return "S-12345-1235-1235-1235";
}
private RequestStatus GetStatus() {
return RequestStatus.Processed;
}
Now, the problem I am experiencing is that this doesn't work. It works if I use PostBackTriggers and not Async ones. However, that is not the functionality I would want. I have tried to put button and timer into UpdatePanel to no avail.
Any ideas what could be wrong with this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题现在已经解决了。我所要做的就是添加 Async="true" 到:
This problem is now solved. All I had to do was add Async="true" to: