2010-07-23 12 views
0

Je rencontre un problème intéressant. Nous utilisons un site Web utilisant la page principale et dans l'une des pages, je dois créer un panneau de mise à jour qui affichera le SSID du groupe à la fin.AsyncPostBackTrigger ne fonctionne pas dans mon application

Ainsi, dans l'un des placesholders de contenu, je mets cela en:

<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" /> 

Code de fond est 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; 
} 

Maintenant, le problème que je fais l'expérience est que cela ne travail. Cela fonctionne si j'utilise PostBackTriggers et non Async. Cependant, ce n'est pas la fonctionnalité que je voudrais. J'ai essayé de mettre le bouton et le temporisateur dans UpdatePanel en vain.

Des idées ce qui pourrait être mauvais avec ceci?

Répondre

2

Ce problème est maintenant résolu. Tout ce que je devais faire était d'ajouter Async = "true" à:

<%@ Page Language="C#" MasterPageFile="~/FlipitAdminPortal.Master" AutoEventWireup="true" CodeBehind="AppUpload.aspx.cs" Inherits="FlipitAdminPortal.AppUpload" Async="true" %> 
+0

J'ai un contrôle FileUpload dans le panneau de mise à jour avec un bouton. Lorsque je sélectionne un fichier et que je clique sur le bouton, il ne passe pas au code derrière. '' – Si8

Questions connexes