• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FormView内に設置したDropDownList1を選択すると同テ)

FormView内に設置したDropDownList1を選択すると他項目を表示したい

このQ&Aのポイント
  • FormView内に設置したDropDownList1を選択すると、同テーブルの他項目を表示したいです。
  • Visual Studio Developer2008(VB)とSQL Server 2008を使用しています。FormView内に設置したDropDownList1を選択すると、同テーブルの他項目が表示されるようにしたいです。
  • また、EditItemTempleteでもDropDownList1を選択すると、同テーブルの内容を確認できるようにしたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tochansa
  • ベストアンサー率76% (23/30)
回答No.2

where句のところは、(DropdownList1,SqlDataSource2,FormView2)が前回書いておいたような配置になっていれば、 提示いただいた画像のソースのところでControlを選択すると右上のパラメータのプロパティにDropdownList1を含むドロップダウンがが出てくるはずです。 ここでDropdownList1を選択して追加を押してやれば、画面下のwhere句のところにSQL式と値(DropdownList1.SelectedValue)が出てきます。 あとは、OKして先に進めば良いです。 sqlDataSource1とsqlDataSource2に直接の関係は無くて、sqlDataSource1で作成したドロップダウンリストでユーザが値を選択することによって、sqlDataSource2が選択された社員データを持ってくるイメージです。 で、この社員さんのドロップダウンリストを選択するとそのデータがきちんとFormView2に表示されるようでしたら、 SqlDataSource2,FormView2をまるまるFormView1のItemTemplateとEditItemTempleteの部分(たぶんDropdownList1が既に設置されているところですよね?)に入れて下さい。コピペとかカット&ペーストで簡単にいけると思いますよ

momonova
質問者

お礼

ご指摘のように試行錯誤してみました。以下のようにするとできましたので、メモします。 1.SqlDataSource1 でSELECT * FROM [T_test] 2.Formview1配置(データソースはSqlDataSource1 ) 3.FormView1内にdropDownList1を配置(データソースはSqlDataSource1 表示は社員名) 4.FormView1内にSqlDataSource2を配置。SELECT [社員カナ][社員携帯]FROM [T_test] WHERE ([社員ID] = @社員ID) 5.FormView1内FormView2を配置 ItemTemplete内にSqlDataSource2,FormView2を配置しないといけないのがポイントと分かりました。 御丁寧なフォローありがとうございました。おかげでシステム完成できそうです^^

その他の回答 (1)

  • tochansa
  • ベストアンサー率76% (23/30)
回答No.1

んーと、、、、ややこしい感じがするのでので切り分けて。 まずは単純にDropDownList1で選択した社員さんのデータをFormView2に表示する仕組みを考えます。 SqlDataSource2を用意して、取得したいフィールド(社員カナ,社員携帯番号あたりかな?)を選択し、Where句でDropDownList1の社員さんのIDとくっつけて下さい。 下記のような感じの並びになると思います。 <asp:DropDownList ID="DropDownList1" ...></asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource2"...></asp:SqlDataSource> <asp:FormView ID="FormView2" runat="server" DataSourceID="SqlDataSource2"...> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# bind("社員カナ") %>'></asp:Label> <asp:Label ID="Label2" runat="server" Text='<%# bind("社員携帯番号") %>'></asp:Label> </ItemTemplate> </asp:FormView> こいつがまともに動くようでしたら、 FormView1(でいいのかな?)のItemTemplateとEditItemTempleteに突っ込んでみて下さい。 以上です。頑張って下さい。

momonova
質問者

補足

回答ありがとうございます。 >Where句でDropDownList1の社員さんのIDとくっつけて下さい。 というところがわかりませんでした。最初の質問のところに写真を添付してます。 どの項目を選択すればよいのか、、、わかりません。 またFormView1内で動作を行いたいと思ってます。 FormView1内のDropDownList1を選択したら、他項目も同Form内に表示したいです。 以下現在の状況です。FormView1にDqlDataSource(SELECT * FROM [T_test])をすべて展開した べたな状態です。そこへDropDOwnList1を追加だけです。他Sqldatasource2のSELECT文が分からない状態かなと思っています。sqlDataSource1とsqlDataSource2の連携(Dropdownlist)がわかりません。 なお、別例としてGridView内の項目からhyperlinkにて該当列をするやり方はわかってます。 説明が下手で申し訳ございませんが、よろしくお願いします。 =================================================== <ItemTemplate> 社員ID:<asp:Label ID="社員IDLabel" runat="server" Text='<%# Bind("社員ID") %>' /> <br /> 社員名:<asp:Label ID="社員名Label" runat="server" Text='<%# Bind("社員名") %>' /> <br /> 社員カナ:<asp:Label ID="社員カナLabel" runat="server" Text='<%# Bind("社員カナ") %>' /> <br /> 社員携帯番号:<asp:Label ID="社員携帯番号Label" runat="server" Text='<%# Bind("社員携帯番号") %>' /><br /> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="社員名" DataValueField="社員ID"> </asp:DropDownList> <br /> <br /> <br /> </ItemTemplate> </asp:FormView>