- PR -

[ASP.NET] 2つの DropDownListBox の連携

1
投稿者投稿内容
Jack
会議室デビュー日: 2003/09/01
投稿数: 4
投稿日時: 2003-09-02 12:00
ASP.NETで
部門名、社員名 の2つの DropDownListBox があり、
部門名を選択した際、社員名には部門名で選択された部門の社員のみ表示させたいのですが
部門名の SelectedIndexChanged でデータを Add しても画面上読み込まれていません
VB.NET では GetFoucs で出来るのですが ASP.NET ではどのように実現するのでしょうか?
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-09-02 12:08
どんなソースを書いてできないのでしょう?
その説明では、原因を推測することしかできませんよ。

よくやる内容なので、Web上にいろいろサンプルが転がっていると思います。
ハヤ
常連さん
会議室デビュー日: 2003/06/04
投稿数: 41
投稿日時: 2003-09-02 12:56
文面からはサーバサイドで社員名DropDownListの更新を行いたいように見えますが
そうですか?そうだとしたらバインドはされていますよね?ソースを見せて頂ければ
具体的にアドバイスできるかもしれません。
それともクライアントサイドで行いたいのですか?

> VB.NET では GetFoucs で出来るのですが ASP.NET ではどのように実現するのでしょうか?
VB.NETとASP.NETは比較対照ではありません。多分、Windowsアプリケーションと、ASP.NET
WEBアプリケーションを比較したいのでしょうけど。

#質問ばっかりなので分かる範囲でたまには回答を・・・
Jack
会議室デビュー日: 2003/09/01
投稿数: 4
投稿日時: 2003-09-02 13:10
>文面からはサーバサイドで社員名DropDownListの更新を行いたいように見えますが
そうですか?

そうです、選択した部門名に応じて DropDownList に社員を表示させたいのです

以下が、部門名の SelectedIndexChanged の記述です

ddlBumonName_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddlBumonName.SelectedIndexChanged

cn.ConnectionString = "Data Source=sql_server;Initial Catalog=respons;User ID=sa;Password=sa;"

cn.Open()

cmd.Connection = cn

cmd.CommandText = "SELECT 社員名 FROM 部門マスタ INNER JOIN 社員マスタ ON 部門マスタ.部門C = 社員マスタ.部門C WHERE 部門マスタ.部門名='" + ddlBumonName.SelectedItem.Text + "'"

dr = cmd.ExecuteReader

ddlTantouName.Items.Clear()

ddlTantouName.Items.Add("--社員名選択--")

Do While (dr.Read())
ddlTantouName.Items.Add(dr.Item("社員名"))
Loop

dr.Close()
cn.Close()

End Sub
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-09-02 13:25
 もっと前の段階ですね。ここにブレークポイントを張ってデバッグしてみてください。止まらないと思います。

 デザイナで、部門名DropDownListをクリックし、プロパティのAutoPostBackをTrue。



 その次にあるであろう質問の答え。。。
リストを選択するとチカチカする(ページの読み直しが発生する)のは、仕様です。
スクロールしたところにあるコントロールの場合、ページが先頭に戻ってしまうことについては、すでに数回質問されています。「スクロール」などをキーに検索してください。


 DataConnectionを、どこで宣言していますか?Module〜End Moduleの中でやっているなら、接続数オーバーの原因になります。使用するときにインスタンスを生成するようにしてください。接続プールは接続文字列の中で指定するので、最小限の接続数が使われるだけになります。これも既出です。

[ メッセージ編集済み 編集者: Jitta 編集日時 2003-09-02 13:30 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-09-02 13:28
Jackさん、こんにちは。

引用:

部門名を選択した際、社員名には部門名で選択された部門の社員のみ表示させたいのですが


もしかして、部門のDropDownListの、AutoPostBack プロパティをTrueにすれば解決する、とか、そういう問題のような気が...。
1

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