- - PR -
Datagridの列がダブる現象について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-04-15 12:34
お世話さまです。
ASP.NET(VB)のDatagridの呪縛からなかなか逃れられそうもありません。>_< 今回の現象は下記の通りです。 ”Datagridのプロパティビルダで明示的に列を定義しようとすると 列が重複してしまう”という現象です。 具体的な手順としましては… 1.SqlDataAdapterの構成で"SELECT A列,B列,C列 FROM TABLED"というクエリを定義 2.TableDataSet1なるデータセットを生成 3.dgdTableなるDataGridをWEBフォームに貼り付け、プロパティビルダ でデータソースにTableDataSet1、データメンバにTABLEDを指定 (この時点でdgdTableにA列,B列,C列が表示される) 4.列プロパティでA列,B列,C列を選択する (さきほどのA列,B列,C列の直後にA列,B列,C列が連結されて表示される) なぜ4でわざわざ明示的に列を追加するかといいますと、 こうしないとコード内でColumns(0〜2)のプロパティ値をハンドリング できないからです。 更にこのdgdTableにはコード内でD列、E列、F列…を追加して 更に検索条件を追加してレコードを絞り込みたいのですが、 SqlDataAdapter.SelectCommand.CommandText = "SELECT D列,E列,F列 FROM TABLED WHERE G列 = ""X01"" のようにするとD列,E列,F列だけに値が入ってA列,B列,C列は空欄 になります。 どのようにすれば宜しいのでしょうか? 皆様のお知恵を拝借できれば幸いです。 |
|
投稿日時: 2003-04-15 12:50
AutoGenerateColumnsプロパティがTrueになっているからではないですか?
|
|
投稿日時: 2003-04-15 13:33
===>いし様
早速のレス、ありがとうございます。 AutoGenerateColumnsプロパティはTrueにしています。 そうしておかないとコード内でD、E、F列を動的に追加すること ができなくなりますよね? それとも、このプロパティは動的に列を生成(連結)させる のとは別の意味で使用するものなのでしょうか? |
|
投稿日時: 2003-04-15 14:10
moondogさん、こんにちは。
(今日は間違ったことを教えないように気をつけますネ(^^; ) AutoGenerateColumnsプロパティは、データソースの全フィールドを「自動」で 作成するかどうかというものです。 今回のケースでは、このプロパティはFalseにしておき、dgdTableの Columnsプロパティ(DataGridColumnCollection)に BoundColumn を「動的」に 追加していく方向で進めてはどうですか? あと、D列、E列、F列を追加する際、A列,B列,C列が空欄になる方ですが、 dgdTableは、データソースに存在するフィールドに連結されると考えたら 起きている現象の説明は付くかも知れません。 |
|
投稿日時: 2003-04-15 14:28
===>Qoo様
こんにちは! 昨日は手取り足取りありがとうございました。 1つの事象が解決したら、こんどはまた別の… ってカンジで三歩進んで四歩下がっているような気がします。^^; >AutoGenerateColumnsプロパティは、データソースの全フィールドを「自動」で 作成するかどうかというものです。 な〜る! All or Nothing型なんですね。(笑) 頂いたアドバイスに沿ってコーディングにチャレンジしてみます。 ありがとうございました。 |
1