- PR -

データグリッド内のコンボの初期表示方法について

1
投稿者投稿内容
マギー
会議室デビュー日: 2006/02/04
投稿数: 3
投稿日時: 2006-02-04 14:42
こんにちわ、初めまして。

早速ですが、分からないことがあって質問をかかせていただきます。
開発環境はASP.NET(VS2003)です。

うまく言えないので、順にどうしていて、どこが問題か書きます。

Form1.ASPX 上にDataSetを2つ用意します。(forGrid、forDropDownList)
forGridには、[Code][Name][BunruiCd][Memo][BunruiName]
forDropDownListには、[Code][BunruiName]を設定します。
DataGridをハリつてて、DataSourceにforGridを指定します。
表示する列は、forGridの[BunruiName]を除く内容を全て、とします。
データを編集できるように、編集ボタンの列を追加します。
[BunruiCd]のところで、ItemTemplateのラベルのテキストには[BunruiName]をバインドし、EditItemTempateにドロップダウンリストを使用します。
そのドロップダウンリストのDataSourceはforDropDownListで、DataValueFieldは[Code]、DataTextFieldは[BunruiName]をしていし、SelectedValueにはforGridの[BrunruiCd]をバインドします。
ページロードで、forGrid,forDropDownListにセットするためのデータを取得し、それぞれにデータをセットし、最後にDataGridのDataBindを行っています。
【問題はここから】
ページを表示し、編集ボタンを押すと、各列がテキストとコンボボックスが表示されるのですが、コンボボックスの中身だけが、正しく表示されません。
具体的には、1行目のデータが表示されてしまいます。
1行目が「BunruiCd:1,BunruiName:分類1」
2行目が「BunruiCd:4,BunruiName:分類4」
3行目が「BunruiCd:2,BunruiName:分類2」
となっていたとして、2行目、3行目で編集を押すと、リストの初期は「分類1」が表示されています。
その後、更新ボタン内で、データを参照(SelectedValueの値)してみると、「1」になっています。
リストで他の分類を選択した後に更新を行って確認すると、正しく選択したものが入っています。
つまり、表示のときだけ、正しく反映してくれません。
デザイン時に、HTML表示に切り替えると、「SelectedValue」でバインドしている部分がエラーとして表示されています。
SelectedValueは使えない、ということなのでしょうか?
DataSetにデータを入れる順番とか、色々試してみたのですが、どうしてもうまくいきません。
もしかしたら、常識的な事なのかもしれませんが、どなたか教えて頂けると助かります。
よろしくお願いします。
1

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