2010-08-19 3 views
1

J'ai un problème avec la mise à jour de l'apparence des éléments de formulaire sous Contrôle du panneau de mise à jour.
J'ai utilisé Uniform JQuery Plugin pour façonner des contrôles de formulaire tels que DropDown. cela fonctionne très bien dans un formulaire ASP.net mais j'ai utilisé un panneau de mise à jour pour générer des éléments CheckboxList lorsque l'utilisateur sélectionne un élément dropDownList.
L'image ci-dessous montre la forme Look et Feel:
alt textCommandes à l'intérieur du panneau de mise à jour et du plugin de présentation de formulaire JQuery Problème !!! AIDE

mais quand je sélectionne une catégorie de la liste mise à jour du modèle UpdatePanel et la mise à jour CheckBoxes le style uniforme supprime des contrôles situés à l'intérieur panneau de mise à jour:
alt text

J'appelle la fonction uniforme au-dessus de la forme:

  <script type="text/javascript"> 
       $(function() { 
        $("input, textarea, select, button").uniform(); 
       }); 
      </script> 

et mise à jour panneau de balisage:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <p> 
       انتخاب دسته:&nbsp;<myCtrl:CategoryDDL AutoPostback="True" EmptyItemText="همه‌ی دسته‌ها" 
        ID="CategoryDDL" OnSelectedIndexChanged="CategoryDDL_SelectedIndexChanged" runat="server" 
        SelectedCategoryId="0" /> 
      </p> 
      <p> 
       برند محصولات<br /> 
       <asp:CheckBoxList ID="CheckBoxListBrands" runat="server"> 
       </asp:CheckBoxList> 
      </p> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="CategoryDDL" /> 
     </Triggers> 
    </asp:UpdatePanel> 



Savoir Tout le monde peut me aider à corriger ce bug ??? existe-t-il un moyen possible de garder le style de contrôle de panneau de mise à jour de supprimer?

Répondre

1

Vous ne pouvez pas l'empêcher de retirer les styles (les éléments sont remplacés complètement), mais vous pouvez réappliquer en exécutant cette fois dans votre code:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() { 
    $("#updatePanelDiv :input").uniform(); 
}); 

Qu'est-ce que cela ne s'attache un gestionnaire d'événements pour relancer le plugin lorsque le endRequest event du UpdatePanel se déclenche (chaque fois qu'il revient avec un nouveau contenu/éléments).

Comme indiqué dans les commentaires, en enveloppant le UpdatePanel dans un wrapper limitera le plugin à juste cette zone.

+0

Merci Mr.Craver! Votre code fonctionne bien. mais il y a un petit bug avec votre code. Chaque fois que le panneau de mise à jour le met à jour, toutes les autres entrées de mon formulaire sont doublées. Pour éviter cela, je mets toutes les commandes du panneau de mise à jour dans une balise div et corrige le sélecteur comme ceci :($ ("# update_panel_container: input"). uniform();) veuillez mettre à jour votre réponse pour l'utilisation d'autres personnes. – mahdiahmadirad

+0

@mahdiahmadirad - fait :) –

0

changement cette méthode

$(function() { 
$("input, textarea, select, button").uniform(); 
}); 

avec

function pageLoad(){ 
$("input, textarea, select, button").uniform(); 
} 

qui est-il ..

Questions connexes