- PR -

DataGrid内での複数DropDownListの連携

1
投稿者投稿内容
プワゾン
会議室デビュー日: 2005/01/28
投稿数: 13
投稿日時: 2005-01-31 14:21
表記の件について、過去のスレッド等で調べたのですが探し方が悪いのか
(私の理解能力が低いのか)解決に至らいないので質問させてもらいます。

環境はVB(ASP).NET VS2003での開発です。(ブラウザはIE5.5以上を使用)

DataGridにテンプレート列を2つ作成しDropDownListを配しています。
2つのDropDownListをA,Bとし、BはAに従属関係のあるデータが入ります。

Aのデータは都道府県名で、Bのデータは市町村名のようなイメージです。

A列   B列
-----------------------------------
東京都 |(東京の市町村をリスト)
-----------------------------------
大阪府 |(大阪の市町村をリスト)
-----------------------------------

実現したい事は、例えばAで東京都を選ぶと東京に存在する市町村をBにリストアップ
するといったように、AのIndexを変更した際に同一行にあるBのItemを動的に変更し
たいのです。(変更対象行は編集や選択モードにはしていません)

Aが変更された時のイベントと変更されたコントロールまでは取れているのですが、
以下の2点の実現方法が分かりません。
 1.Aの変更時にどの行(何行目)のDropDownListが変更されたかまで取得したい。
 2.変更された同一行に存在するBのItemを変更させたい。
  (変更行のDropDownListの取得と変更)

参考URL、ヒントでも結構ですのご教示いただけるようお願いします。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-31 16:36
こんにちは。

コード:

Private Sub listA_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles listA.SelectedIndexChanged

Dim listA As ListBox
Dim listB As ListBox

listA= CType(sender, ListBox )
listB = listA.Parent.FindControl("listBのID")

listB.Items.Clear()

For lintLoop = 0 To 10
listB.Items.Add(New ListItem(i & "Text", i & "Value"))
Next
End Sub






[ メッセージ編集済み 編集者: SE卵 編集日時 2005-01-31 16:41 ]
プワゾン
会議室デビュー日: 2005/01/28
投稿数: 13
投稿日時: 2005-01-31 17:11
SE卵さん 早速のレスありがとうございます

同一行のDropDownListの取得・変更ができました。

Parentプロパティを使えばよかったんですね。
(探しきれませんでした モットベンキョウシナイトイケナイナー..)

本当にありがとうございました。また何かあればよろしくお願いします。
1

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