GridView
割り当てた一意の識別子を使用して、コードビハインドの列の表示を制御できるようにしたいと思います。このようにして、表示および非表示にする列を動的に決定でき、新しい列を追加するたびにコードを変更する必要がありません。
これを行うために私が考えた最善の方法は、HeaderText
of列を一意の識別子として使用し、のすべてのDataControlField
オブジェクトをループしGridView.Columns
て、要求されたHeaderTextを検索する関数を作成することです。
DataControlField
オブジェクトがのようにアクセスできる割り当て可能なIDプロパティを持つことができなかったのは私には奇妙に思えますGridView.Columns["AssignableID"]
。このように機能するIDプロパティを持つことができないプログラム上の理由はありDataControlField
ますか、それとも単に存在しない機能ですか?
私の質問は、列を隠す問題の実際の解決策よりも、それが存在しない理由に関するものですが、誰かがこれを達成するためのより良い方法を持っているなら、私はそれをいただければ幸いです。
リクエストごとに、HeaderTextによる検索の例を次に示します。
protected DataControlField GetColumn(GridView grid, string columnName)
{
foreach (DataControlField column in grid.Columns)
{
if (column.HeaderText == columnName)
{
return column;
}
}
return null;
}