0

この問題の解決策は、この投稿で述べられていることであると思われます:http : //codinglifestyle.wordpress.com/2009/10/08/repeaters-and-lost-data-after-postback-viewstate/私にとっては機能しない縫い目:|

だから私はページを持っていて、そのページに3つの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>

初期化時にこのメソッドを呼び出します

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

        }

このリピーターの上に他のWebコントロールがあります。ドロップダウンの値を変更すると、フォームが送信されます。それが起こると、リピーターからのwebcontrolの値はそれらの値を失います。あなたは何をすることを提案しますか?ありがとう。

4

1 に答える 1

0

私は答えを見つけました:repFissaggio_ItemCreatedではなく、protected void repFissaggio_ItemDataBound(object sender、RepeaterItemEventArgs e)にバインディングを配置する必要があります

于 2013-01-04T07:23:16.990 に答える