データバインドされたラベルとDropDownListコントロールを含むItemTemplateを含むリピータコントロールがあります。それぞれの反復で、各反復でDropDownListのIDを変更して、値を送信時に入力として使用したいと思います。誰かがこれが通常どのように行われているか教えていただけますか?ありがとう。リピータ内部のWebControlプロパティを変更する
0
A
答えて
1
これは自動的に行われます。詳細については、Using the NamingContainer Property to Determine a Control's Naming Containerをご覧ください。
私はおそらくあなたが探しているものではないと思っています。ドロップダウンから値を取得するには、リピーター内の項目をループし、FindControlメソッドを使用して、指定したIDに基づいてドロップダウンを検索する必要があります。
foreach(RepeaterItem item in repeater1.Items) {
DropDownList dropdown = (DropDownList)item.FindControl("DropDownList1")
//dropdown.SelectedValue
}
編集:あなたのコメントに基づいて、私はドロップダウンリストの名前をデータベースのIDに変更しませんでした。代わりに、あなたのリピータに隠されたリテラルコントロールを置くべきです。その値をデータベースレコードのIDに設定します。次に、ドロップダウンリストの値を取得するのと同じ方法でIDを取得します。私はそれが最も簡単だけで、その後はむしろ1を作成しようとするよりも、デザイン時にDropDownListコントロールを作成し、リピータ内のプレースホルダを入れてい
(Literal)item.FindControl("ListeralWithDataBaseId")
あなたのASPXマークアップは、この
<asp:Literal runat="server" id="ListeralWithDataBaseId"
Value='<%# Eval("Id")' %> Visible="false" />
0
のようになります。設計時にIDを繰り返し、IDを繰り返します。
関連する問題
- 1. 変更内部機能
私の目的は、各反復時にIDを指定する必要があるため、フォームが送信されるときに、それらのIDを使用してデータベーステーブルの値を設定できるようにします。 –