DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

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をご利用いただく際は、注意事項をお守りください。