1

DropDownListアイテムのプロパティグループを表示して変更できるように、sのグループを作成する必要があります。

ASPページに次のコードがあります。

<asp:Repeater runat="server" ID="repeaterProperties">
    <ItemTemplate>
        <p><asp:DropDownList runat="server" ID="ddProperty" OnInit="ddProperty_OnInit" /><p>
    </ItemTemplate>
</asp:Repeater>

は、データベースクエリで可能なすべての値をにddProperty_OnInit入力します。DropDownList

のソースデータDropDownListに従って作成されたそれぞれの選択された値を設定するにはどうすればよいですか?Repeater

たとえば、との可能なプロパティ値がAあるBとしCます。
のデータベース出力Repeaterにこれらの値の2つが含まれている場合、AおよびBRepeater2つのsを出力しますDropDownList。両方とも、3つの値すべてが使用可能で、最初のA値は選択された値として、2番目の値はB選択された値として使用されます。

編集:
私の場合 、に追加OnItemDataBound="repeater_ItemDataBound"してRepeater適切な値を選択する方法はないようです。これは、変更された可能性のある値もデータベースに保存する必要があるためです。

ItemDataBoundイベントは、のイベントのRepeater前に発生し、新しい選択を保存する前に、選択した値を古い値に変更します。OnClickButton

これを回避する方法について何か提案はありますか?

現在のコード:

<asp:Repeater runat="server" ID="repeaterJako" OnItemDataBound="repeater_ItemDataBound">
<ItemTemplate>
    <asp:DropDownList id="ddJako" runat="server" OnInit="ddJako_OnInit">
    </asp:DropDownList><br />
</ItemTemplate>
</asp:Repeater>
<asp:Button runat="server" id="updateButton" Text="Save" OnClick="update_OnClick" />

コードビハインドでddJako_OnInitは、ドロップダウンリストに可能なすべての選択肢を入力しrepeater_ItemDataBoundますが、はブライアンパーカーが提案した方法を使用して適切な値を選択します。

4

2 に答える 2

4

あなたの質問について何か誤解しているかもしれません...しかし、これはまさにOnItemDataBoundの目的のようです。:)

FindControl を使用して、イベント ハンドラーで DropDownList への参照を取得します。また、項目がヘッダー/フッターでないことを確認してください。MSDN の例は、次の両方を行います。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.onitemdatabound.aspx

于 2009-02-17T10:45:44.117 に答える
1

私が編集で特定した問題に関しては、DataBind演劇の時間は重要な役割を果たします。以前はイベントでデータバインディングを行っていたため、イベントの前にイベントがPage_Init発生していました。repeater_ItemDataBoundbutton_OnClick

解決策は、データバインディングをPage_PreRenderイベントに移動することでした。
すべての選択を伴うの人口は、そのイベントDropDownListでまだ行われています。OnInit

于 2009-02-24T08:07:51.427 に答える