- - PR -
データグリッド内のコンボの初期表示方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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