DOBON.NET

DataGridのAllowSortingプロパティをFalseにしても並べ替えができてしまう問題の解決法

注意:ここで紹介しているDataGridは、System.Windows.Forms名前空間のDataGrid(Windowsフォーム)です。System.Web.UI.WebControls名前空間のDataGrid(Webフォーム)ではありません。

DataGridコントロール(System.Windows.Forms)のAllowSortingプロパティをFalseにしても、列カラムをクリックすると並び替えされてしまうという時は、DataGridコントロールにテーブルスタイルが設定されていないか確かめてください。DataGridコントロールにテーブルスタイルが設定されている時、並び替えの許可、不許可はDataGridコントロールのAllowSortingプロパティで設定するのではなく、使用しているDataGridTableStyleのAllowSortingプロパティで設定する必要があります。

よってDataGridコントロールにテーブルスタイルが設定されているときは、設定されているDataGridTableStyleのAllowSortingプロパティをFalseにします。ほとんどの場合、これで解決できるでしょう。

次の例では、DataGridコントロールDataGrid1にテーブルスタイル"DataTable1"が設定されている時に、列ヘッダのクリックで並び替えをできないようにしています。

VB.NET
コードを隠すコードを選択
'DataGrid1にはテーブルスタイル"DataTable1"が
'設定されているものとする

'テーブルスタイルの取得
Dim ts As DataGridTableStyle
ts = DataGrid1.TableStyles("DataTable1")

'並び替えできないようにする
ts.AllowSorting = False
C#
コードを隠すコードを選択
//DataGrid1にはテーブルスタイル"DataTable1"が
//設定されているものとする

//テーブルスタイルの取得
DataGridTableStyle ts;
ts = DataGrid1.TableStyles["DataTable1"];

//並び替えできないようにする
ts.AllowSorting = false;
  • 履歴:
  • 2014/5/27 誤字修正。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価
良い / 悪い = 12 / 0

この記事へのコメント
通常のコメント [ 管理人 ] 2014年5月26日 15:48:49
> Flaseになってます。(私もよくする事ですが。)

修正させていただきます。ご報告ありがとうございました。

通常のコメント [ nao20010128nao ] 2014年3月27日 13:08:45
Flaseになってます。(私もよくする事ですが。)

評価の理由 [ テルさん ] 2007年3月15日 07:39:32
評価:良い
毎度ながら的確な記事に頭が下がります。
ありがとうございます!

評価の理由 [ みらい ] 2005年3月28日 10:06:16
評価:良い
助かりました!
DataGrid?から入って今それを勉強していました。まさにドンぴしゃりの悩みが載っていたので、本当に助かりました!

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。