- - PR -
DetailsView内のDropDownListについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-07 17:16
VWD2005でVBを利用しています。
標記の件で、DetailsViewのデータ編集、挿入時にDropDownListから選択できるように してますが、リスト項目が多く(100以上)探しだすことが困難です。 そこで、他にDropDownListを作成して抽出したリストをDropDownListに登録したいと 思ってます。 過去にDataGrid上のDropDownListを連携させる方法等が掲載されていますが、応用の 仕方が分かりません。 初心者ですので、丁寧にご教授ください。 | ||||||||
|
投稿日時: 2006-07-07 17:39
まず、どんな仕様・動作にしたいのかを 丁寧に 説明して下さい。
[追記] ドロップダウンで選択されたら他方のドロップダウンの中身を動的に設定したいということと 想像できますが。ポストバックさせて普通に設定するかjavascriptでやるか。後者の場合は、 あらかじめscriptをべたっと吐いておくかajaxという技術を使うかになるかな。 [追記2] ↓そうか、VS2005だったら結構簡単につくれちゃいますね。ウィザードの中でWHERE句の 指定にControlの値を直接指定できるから。 [ メッセージ編集済み 編集者: べる 編集日時 2006-07-07 21:03 ] | ||||||||
|
投稿日時: 2006-07-07 20:54
> 初心者ですので、丁寧にご教授ください。
まず、自分でやってみて、どこまでなら自分でできるのか、どこができないのか、 それを見極めてから質問するようにしてみては? 自分が何がわからないのかさえわからない状態で人のアドバイス聞いても中身を 理解できないまま終わるだけですよ。 特にデザイナ画面から設定していく部分とかは掲示板では説明しずらいものが ありますし。 SqlDataSourceを利用して2つのDropDownListを連携させる場合に限ると、 ・最初のDropDownListとそこにデータを貼り付けるSqlDataSourceを作成する ・2つめのDropDownListとそこにデータを貼り付けるSqlDataSourceを作成する 2つめのSqlDataSourceは1つ目のDropDownListで選択されている値をもとに データを絞り込めるように設定する という形になるかと思います。 さすがにここはわかってるかな? | ||||||||
|
投稿日時: 2006-07-07 22:26
説明不足ですみません。
具体的にはDropDownList1には都道府県名が入っているとします。テーブルのデータは [prefID][prefName]とします。 DropDownList2は市町村名です。データは[cityID][prefID][cityName]。 住所録を表示するDetailsViewがあり、DropDownList1とDropDownList2を配置します。 下記のとおりにDropDownList1には都道府県名、DropDownList2には市町村名が表示 されるようにします。
DropDownList2のSqlDataSourceのWHERE句でDropDownList1のSelectedValueを 指定してやればよいと思うのですが、DetailsViewの中にあるDropDownList1を 指定する方法が分かりません。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18596&forum=7 上記を参考にFindControlを使ってみましたがうまくいきません。 さらにデータのアップデート時にはDropDownList2は既存の選択値たとえば大阪市が 表示されます。ここでDropDownList1を京都府に変更するとDropDownList2には 大阪市がない旨のエラーとなってしまうのではないでしょうか。 | ||||||||
|
投稿日時: 2006-07-07 22:44
ああ、DetailsViewの中に2つ入れたいという話ですか。
おっしゃるとおり難しいんじゃないですかね。 http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=492535&SiteID=7 例にあげてるものまで同じだし。。。 | ||||||||
|
投稿日時: 2006-07-08 03:33
あとでaspxファイルを編集してDropDownList1に変えたらできましたよ。FindControlは 使いませんでした。(という意味で合ってるかな)
使わないんですよね?(そして都道府県テーブルも市町村テーブルは更新しませんよね) どのタイミングのことを言っているのかもちょっとわかりませんでした。 | ||||||||
|
投稿日時: 2006-07-08 21:27
まさに同じです。回答がないということは解決策がないということでしょうか。 リストの項目が多い場合、どういった方法を取っているのでしょうか。 | ||||||||
|
投稿日時: 2006-07-10 03:03
なんとかやる方法がないかと思っていろいろ試してみました。
結果的に、プログラミングを(本質的な行数は)1行追加することで実装できます。 何箇所かウィザードでは設定できないaspxファイルの記述を手で書き換える必要もありますけどね。 http://dotnetfan.org/blogs/dotnetfanblog/articles/737.aspx |