特定の列の値に応じてサブヘッダー (1 つまたは複数の行) を追加できるグリッドを取得したいと思います (データ ソースは、この列で並べ替えられてグループ化されます)。継承した GridView 内で、OnRowDataBind メソッドをオーバーライドします。OnRowDataBind の現在の呼び出しで列を考慮する値が以前の値と等しくない場合、特別なヘッダー行が現在の行の前に挿入されます。
Table tbl = this.Controls[0] as Table; //this - pointer to CustomGridView
tbl.Controls.AddAt(rowIndex + add_counter + 1, NewSubHeaderRow); /*rowIndex - RowIndex of current row, add_counter - amount of already added SubHrader rows */
すべて正しく動作します。しかし、GridView がその状態を復元すると、ポストバックで問題が発生します。すべてのグループの最初の行とそのすべてのコントロール (つまり、動的に追加された各サブヘッダー行の後の最初の行) には、属性がありません。ただし、グループの 2 行目は、それ自体の属性と最初の行の属性の両方を保持します。
いくつかのヘルプは非常に便利です。GridView に行を追加する別の (そして正しい) 方法があるかもしれません。次に、チュートリアルまたは記事へのリンクを提供してください。