- PR -

DataListの中のDropDownList選択時のコードはどこに書く?

1
投稿者投稿内容
NYA
会議室デビュー日: 2004/05/16
投稿数: 12
投稿日時: 2004-05-17 09:35
DataListの中に、DropDownListを作って、データを表示しています。
選択したデータを取得する方法はわかったのですが、
選択した時のコード(SelectedIndexChanged)は、どこに書いたらいいのでしょうか?


[ メッセージ編集済み 編集者: NYA 編集日時 2004-05-17 09:36 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-17 10:17
引用:

NYAさんの書き込み (2004-05-17 09:35) より:

選択した時のコード(SelectedIndexChanged)は、どこに書いたらいいのでしょうか?


 サーバで処理したいなら、サーバコード。クライアントで処理したいなら、クライアントコード(HTMLの中にJavaScriptで埋め込む)。

 DropDownListのAutoPostBackプロパティをtrueにすると、変更した時にポストバックが発生します。コードは、エディタにサーバ側コードを表示して、…VB.NETでいいですよね?エディタの左上のコンボボックスから対象のDropDownListを選択し、右上のコンボボックスからSelectIndexChangedを選択します。すると、コードが追加され、追加されたコードが表示されます。
↑↑↑↑↑↑
これだと固定ですね。失礼。
AddHandlerで追加します。C#ですが、、、
コード:

// DataListにアイテムが追加されると発生するイベント
private void DataList1_ItemCreated(object sender,
System.Web.UI.WebControls.DataListItemEventArgs e) {
string cntrlName;

if (e.Item.ItemType == ListItemType.AlternatingItem
|| e.Item.ItemType == ListItemType.Item) {
// アイテムか、代替アイテムが追加されるとき
cntrlName = (e.Item.ItemType == ListItemType.AlternatingItem
? "DropDownList2" : "DropDownList1");
// 追加されたアイテムからDropDownListを探し、
DropDownList lst = (DropDownList) e.Item.FindControl(cntrlName);
// 見つかったDropDownListにイベントハンドラを追加する
lst.SelectedIndexChanged
+=new EventHandler(lst_SelectedIndexChanged);
}
}

// 追加したDropDownListコントロールのイベントハンドラ
private void lst_SelectedIndexChanged(object sender, EventArgs e) {
DropDownList ddl = (DropDownList) sender;
Label1.Text = string.Format("{0}の値が{1}に変わりました"
, ddl.ClientID, ddl.SelectedValue);
}



[ メッセージ編集済み 編集者: Jitta 編集日時 2004-05-17 11:32 ]
NYA
会議室デビュー日: 2004/05/16
投稿数: 12
投稿日時: 2004-05-17 12:11
いつも、すばやい回答をありがとうございます。
説明不足で申し訳ございませんでした。
DataListの項目テンプレート上に定義したDropDownListは、エディタの左上のコンボボックスから選択できないので、どうしたらいいのか悩んでおりました。
教えていただいた方法で試してみます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)