2009-01-27 7 views
0

J'ai un contrôleur et un bouton FileUpload dans un accordéon AJAX que je ne peux pas travailler. Le problème est que le contrôleur FileUpload nécessite une publication complète pour que cela fonctionne. Cependant, comme le contrôle se trouve dans un panneau de mise à jour, asp décide de faire une publication partielle. Habituellement, vous devez simplement placer le ControlId dans un déclencheur sur le panneau de mise à jour. Cependant, comme l'accordéon utilise un espace de noms différent, vous ne pouvez pas le faire (au moins directement).ASP FileUpload Controller dans AJAX Accordion

Comment proposeriez-vous que je résolve ce problème?

Répondre

1

Vous pouvez définir la propriété ChildrenAsTriggers sur false sur le panneau de mise à jour potentiellement avec le mode UpdateMode conditionnel. Ensuite, toutes les mises à jour du panneau devraient être codées explicitement. Je n'ai jamais essayé, mais ça peut marcher.

0

Vous pouvez placer l'ID de contrôle dans un déclencheur de publication automatique tant que les volets d'accordéon ont chacun leur propre panneau de mise à jour.

       <ajaxToolkit:AccordionPane 
           HeaderCssClass="accordionHeader" 
           HeaderSelectedCssClass="accordionHeaderSelected" 
           ContentCssClass="accordionContent"> 
           <Header><asp:LinkButton ID="lbtnOption1" runat="server">Option 1</asp:LinkButton></Header> 
           <Content> 
            <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
             <ContentTemplate> 
              /* Put HtmlInputFile and upload button here*/ 
             </ContentTemplate>     
             <Triggers> 
               <asp:PostBackTrigger ControlID="btnUpload" /> 
             </Triggers></asp:UpdatePanel>           
           </Content> 
          </ajaxToolkit:AccordionPane>