2012-11-27 44 views
0

它接縫,這個問題的解決方案將在這篇文章中說:http://codinglifestyle.wordpress.com/2009/10/08/repeaters-and-lost-data-after-postback-viewstate/然而它接縫對我來說不起作用:來自中繼控制器的Web控件鬆動它們的值

所以我有一個頁面,並在該頁面有一箇中繼器,有3個webcontrols。

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

在初始化我把這種方法

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

     } 

超過這個中繼器我有其他器WebControls。當我更改下拉列表的值時,表單被提交。當發生這種情況時,來自中繼器的webcontrol值會失去其價值。 你有什麼建議? 謝謝。

+0

您可以嘗試刪除,如果條件轉發回發後,每次綁定(也(的IsPostBack!) ),但要確保所有輸入(webcontrols內)的ID是相同的,所以這些值可以成功地從帖子數據和視圖狀態中檢索。 –

+0

感謝您的回覆,我找到了答案:我應該把綁定在保護無效repFissaggio_ItemDataBound(對象發件人,RepeaterItemEventArgs e),而不是在repFissaggio_ItemCreated –

回答

0

我找到了答案:我應該在保護無效repFissaggio_ItemDataBound(對象發件人,RepeaterItemEventArgs E)放結合,而不是在repFissaggio_ItemCreated