- ベストアンサー
コンボボックス
コンボボックスにデータベースの値セットしたいですが、 具体的なやり方がわかりません。 VS.Net2003 データはデータセットに設定しているのですが OleDbDataAdapter1.Fill(DsBurando1) cmb1.databind()やると コンボボックスの中身は一件目のデータしかなくて、 しかも立て表示しているのですが・・・ どんな設定が必要でしょうか。 よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> BorderColor='<%# DataBinder.Eval(DsBurando1, "Tables[ブランドコード].DefaultView.[0].ブランド名称") %>' は変ですよね BorderColorにブランド名称を接続してますから プロパティでDataMember、DataSourse、DataTextFieldを設定してあるなら コード側で設定する必要はないと思いますよ OleDbDataAdapter1.Fill(DsBurando1) cmb1.databind() で表示されるんですけどね 当方のテストは MDBファイルをoleDbDataAdapterで接続して ブランドコードテーブルに ID,ブランド名称,Dataフィールドを作成 DataSetには このID,ブランド名称フィールドを取得 で コンボボックスの DataSource,DataMember,DataTextFieldをプロパティウィンドウで設定 Page_Loadイベントで if not IsPostBack then OleDbDataAdapter1.Fill(myDS1) DropDownList1.Databind() end if といったコーディングです
その他の回答 (2)
- redfox63
- ベストアンサー率71% (1325/1856)
設定するのは データセットなど DataSource = ds データセットのテーブル名 DataMember = "myTable01" リストに表示する列名 DataTextField = "Name" リストから取得するデータ列名 DataValueField = "Code" といった具合です 取得する際には ValueFieldを取得したいなら SelectedValue TextFieldを取得したいなら SelectedItem.Text といった具合です
補足
どうも、教えていただいた設定方法を試したんですが、コンボボックスの中身が表示しません。 aspxファイルは <TR> <TD style="HEIGHT: 21px">ブランド</TD> <TD style="HEIGHT: 21px"><asp:dropdownlist id="ddlBrand" runat="server" Height="24px" Width="288px" BorderColor='<%# DataBinder.Eval(DsBurando1, "Tables[ブランドコード].DefaultView.[0].ブランド名称") %>' DataSource="<%# DsBurando1 %>" DataMember="ブランドコード" DataTextField ="ブランド名称"> </asp:dropdownlist></TD></TR> vbファイルは page_loadイベントに OleDbDataAdapter1.Fill(DsBurando1) ddlBrand.DataSource = DsBurando1 ddlBrand.DataMember = "ブランドコード" ddlBrand.DataTextField = "ブランド名称" なにか設定足りないですか。 初心者で、すみません。 よろしくお願いします。
- Kuppycat
- ベストアンサー率50% (109/216)
コンボボックスのリストにDBのデータを設定したいと言うことでよろしいでしょうか。 以下のように設定します。 cmb1.DataSource = DsBurando1 cmb1.DisplayMember = "DISPNM" <== 表示する内容のカラム名 cmb1.ValueMember = "CODE" <== 実際のデータとして扱うカラム名 この場合のデータセットは、リスト用に更新するものとは別のデータセットを用意してください。
補足
回答ありがとうございます。 DisplayMember使っているのですが、コンボボックスの部品にDisplayMemberがないです。。。 DataMemberならありますけど、同じですか。
お礼
なるほどです。 DropDownList1.Databind()してなかったです。^^; 正しく表示できました。 本当にありがとうございます。