DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridのソート

  • 題名: DataGridのソート
  • 著者: nak
  • 日時: 2005/07/14 13:39:14
  • ID: 11792
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WinXP VB.NET]
分類:[.NET]

VB.NETのDataGridにmdbのテーブルを連結させて編集/更新を行いたいと考えています.
方法としてはHELPにもあるとおり
1.データセットを使う方法
2.DataViewを使う方法
の二種類があるようですが,
1.の方法ではコードによるソートがわからない(ヘッダ部をクリックするのではなく).
2.の方法ではTableStyleを設定する方法がわからない
というわけで困っています.

1.の方法で,
「コードによってヘッダ部をクリックしたときと同じ
ようにソートされる(新規にデータを入力したらそれもソートされる)
方法」(ちなみにソートする列は一貫して固定です)
か,あるいは
2.の方法で,
「TableStyleを設定する方法」
のどちらかをご存知の方,どうかご教授ください.
よろしくお願いします.
> 2.DataViewを使う方法
> 2.の方法ではTableStyleを設定する方法がわからない

TableStyleというのは、データグリッド(プロパティで設定する)のテーブルのことじゃないですよね?


■No11817に返信(かんさんの記事)
>>2.DataViewを使う方法
>>2.の方法ではTableStyleを設定する方法がわからない
>
> TableStyleというのは、データグリッド(プロパティで設定する)のテーブルのことじゃないですよね?

かんさん,ありがとうございます.
はい,違います.
列幅を変更したりするプロパティです.
データソースのプロパティのひとつ下にある「コレクション」
となっているところです.
> 列幅を変更したりするプロパティです.
> データソースのプロパティのひとつ下にある「コレクション」
> となっているところです.

間違っていたらごめんなさい。DataGrid1のプロパティで
TableStylesのコレクション(右側)をクリックして、「DataGridTableStyleコレクションエディタ」を開きます。「メンバ(M)」を1つ「追加」します。追加されたら、右のDataGridStyle1プロパティで上から2番目の「MappingNameプロパティ」を設定します。▼をクリック、ここはDataSource(欲しいテーブル)で設定したいテーブルを設定します。次は、GridColumnStyles(一番上)を設定します(コレクションの右をクリック)。DataGridColumnStyleコレクションエディタが開きます。ここで欲しいフィールドの数だけ追加(左側「追加(A)」)します。で、MappingNameで▼をクリックしてテーブルから欲しい列を選択します。Widthはテーブルの幅(単位はピクセル、0にすると非表示)、Alignmentは列のタイトルに反映(右よせか、左よせか、など)されます。Formatはデータの書式です(数値3桁ごとにカンマする場合なら[###,###]と設定する。) HeaderTextプロパティは列の名前。一番下のNullTextは削除するとデータがないときに何も表示されないようです。こんな感じでできると思います。

見当違いだったらごめんなさい。
  • 題名: Re[4]: DataGridのソート
  • 著者: かん
  • 日時: 2005/07/15 17:06:58
  • ID: 11820
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
追記です。

> ここで欲しいフィールド(列)の数だけ追加(左側「追加(A)」)します。で、MappingNameで▼をクリックしてテーブルから欲しい列を選択します。Widthはテーブルの幅(単位はピクセル、0にすると非表示)、Alignmentは列のタイトルに反映(右よせか、左よせか、など)されます。Formatはデータの書式です(数値3桁ごとにカンマする場合なら[###,###]と設定する。) HeaderTextプロパティは列の名前。一番下のNullTextは削除するとデータがないときに何も表示されないようです。

上記設定を列の数だけ繰して設定します。
■No11819に返信(かんさんの記事)
>>列幅を変更したりするプロパティです.
>>データソースのプロパティのひとつ下にある「コレクション」
>>となっているところです.
>
> 間違っていたらごめんなさい。DataGrid1のプロパティで
> TableStylesのコレクション(右側)をクリックして、「DataGridTableStyleコレクションエディタ」を開きます。「メンバ(M)」を1つ「追加」します。追加されたら、右のDataGridStyle1プロパティで上から2番目の「MappingNameプロパティ」を設定します。▼をクリック、ここはDataSource(欲しいテーブル)で設定したいテーブルを設定します。次は、GridColumnStyles(一番上)を設定します(コレクションの右をクリック)。DataGridColumnStyleコレクションエディタが開きます。ここで欲しいフィールドの数だけ追加(左側「追加(A)」)します。で、MappingNameで▼をクリックしてテーブルから欲しい列を選択します。Widthはテーブルの幅(単位はピクセル、0にすると非表示)、Alignmentは列のタイトルに反映(右よせか、左よせか、など)されます。Formatはデータの書式です(数値3桁ごとにカンマする場合なら[###,###]と設定する。) HeaderTextプロパティは列の名前。一番下のNullTextは削除するとデータがないときに何も表示されないようです。こんな感じでできると思います。
>
> 見当違いだったらごめんなさい。
>

試してみましたらできました!
TableStylesの設定方法は知っていたのですが
正しく設定できていなかったようです.
恐らくはMappingTableをちゃんと設定できていなかったのかも..
ともかくこれで解決です.かんさん,ありがとうございました.
解決済み!
追記です.

DataViewをDataGridのDataSourceにした場合,
TableStylesのコレクションエディタにおいて
TableMappingに「なし」しか表示されないので
「あーだめか」と勘違いしたようです.
データテーブル名を手打で入れてやるとちゃんとできるということで
私の早とちりでした.
ご参考までにご報告いたします.
解決済み!
  • 題名: Re[6]: DataGridのソート
  • 著者: かん
  • 日時: 2005/07/16 9:31:31
  • ID: 11836
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2005/07/16(Sat) 10:33:15 編集(投稿者)

> DataViewをDataGridのDataSourceにした場合,
> TableStylesのコレクションエディタにおいて
> TableMappingに「なし」しか表示されないので
> 「あーだめか」と勘違いしたようです.
> データテーブル名を手打で入れてやるとちゃんとできるということで
> 私の早とちりでした.
> ご参考までにご報告いたします.

関係がないかもしれないけれど、参考に。
データグリッドのDataSourceプロパティにデータセットを設定した状態で、TableStylesを設定する。その後に、DataSourceプロパティの値をデータビューに変更します。

DOBON.NET | プログラミング道 | プログラミング掲示板