2012-11-27 2 views
0

Il semble que la solution à ce problème serait ce qu'il est dit dans ce post: http://codinglifestyle.wordpress.com/2009/10/08/repeaters-and-lost-data-after-postback-viewstate/ mais il semble que pour moi ne fonctionne pas: |Webcontrols à partir d'un contrôle de répéteur perdre leur valeur

J'ai donc une page et dans cette page un répéteur qui a 3 contrôles Web.

<asp:Repeater ID="repFissaggio" runat="server" OnItemCreated="repFissaggio_ItemCreated" EnableViewState="true" > 
    <ItemTemplate> 
     <table width="100%"> 
      <tr> 
       <td style="width:30%;border: gray 1px solid;"> 
        <div style="text-align: center; width:100%; border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;border-bottom: gray 1px solid; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-WEIGHT: bold; FONT-SIZE: 12px; background-color:gainsboro;">Disegno Articolo</div> 
        <asp:Image runat="server" ImageUrl='<%# GetFileAddress(Container.DataItem) %>' Width='220px' ID="imgDisegnoArt" EnableViewState="false"></asp:Image> 
       </td> 
       <td style="width:65%"> 
        <div style="text-align: center; width:100%; border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;border-bottom: gray 1px solid; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-WEIGHT: bold; FONT-SIZE: 12px; background-color:gainsboro;">Informazioni Articolo</div> 
        <gsc:SchSolettoFinissaggioArticoloUC ID="ucSchSolettoFinissaggioArticolo" runat="server"></gsc:SchSolettoFinissaggioArticoloUC> 
       </td> 
      </tr> 
      <tr> 
       <td style="border: gray 1px solid;"> 
        <div style="text-align: center; width:100%; border-right: gray 1px solid; border-top: gray 1px solid; border-left: gray 1px solid;border-bottom: gray 1px solid; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-WEIGHT: bold; FONT-SIZE: 12px; background-color:gainsboro;">Schema Finissaggio</div> 
        <asp:Image runat="server" ImageUrl='<%# GetFileAddress(Container.DataItem) %>' Width='220px' ID="imgSchedaFissaggio" EnableViewState="false"></asp:Image> 
        <asp:Label ID="divfileName" runat="server" Text='<%# GetFileName(Container.DataItem) %>' style="text-align: center; width:100%"></asp:Label> 
       </td> 
       <td> 
        <fieldset style="padding: 10px,10px,10px,10px; border-bottom-width: 5px"> 
         <legend>Sistema di Industrializzazione</legend> 
         <gsc:SchSolettoSistemaProdIndusUC ID="ucSchSolettoSistemaIndus" runat="server"></gsc:SchSolettoSistemaProdIndusUC> 
        </fieldset> 
        <br /> 
        <fieldset style="padding: 10px,10px,10px,10px; border-bottom-width: 5px"> 
        <legend>Sistema di Produzione</legend> 
         <gsc:SchSolettoSistemaProdIndusUC ID="ucSchSolettoSistemaProd" runat="server"></gsc:SchSolettoSistemaProdIndusUC> 
        </fieldset> 
       </td> 
      </tr> 
     </table> 
    </ItemTemplate> 
</asp:Repeater> 

Sur initialisation J'appelle cette méthode

protected override void InitEditor() 
     { 
      if (!IsPostBack) 
      { 
       ... 
       repFissaggio.DataSource = SolettoDS.SoleXSchTec; 
       repFissaggio.DataBind(); 
      } 

     } 

Au-dessus de ce répéteur j'ai d'autres WebControls. Lorsque je modifie la valeur d'une liste déroulante, le formulaire est soumis. Lorsque cela se produit, les valeurs de contrôle Web du répéteur perdent leur valeur. Que suggérez-vous de faire? Merci.

+0

Vous pouvez essayer de supprimer si la condition de se lier répéteur à chaque fois (également après la publication (IsPostBack!)), mais assurez-vous que les ID de toutes vos entrées (dans les contrôles Web) sont les mêmes, afin que les valeurs puissent être récupérées avec succès à partir des données de publication et de viewstate. –

+0

merci pour votre réponse, j'ai trouvé la réponse: je devrais mettre la liaison dans un espace protégé repFissaggio_ItemDataBound (expéditeur d'objet, RepeaterItemEventArgs e) et pas dans repFissaggio_ItemCreated –

Répondre

0

Je trouve la réponse: je mets obligatoire dans repFissaggio_ItemDataBound vide protégé (expéditeur d'objet, RepeaterItemEventArgs e) et non dans repFissaggio_ItemCreated

Questions connexes