プログラムで追加の行を DataGrid に挿入したいと思います (サブヘッダーとして機能するため)。私はオンラインでいくつかの記事をたどりました(つまり、http://aspalliance.com/723のオプション3 )が、すべての行が正しく表示されますが、内容はありません。
私が使用しているコードの重要な部分は次のとおりです。
private void MyDataGrid_ItemCreated(object sender, DataGridItemEventArgs e)
{
// This method will create a subheading row if needed
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
// TableCell
TableCell tc = new TableCell();
tc.Controls.Add(new LiteralControl("foo"));
tc.ColumnSpan = e.Item.Cells.Count;
// DataGridItem
DataGridItem di = new DataGridItem(e.Item.ItemIndex + 1, 0, ListItemType.Item);
di.Height = new Unit(100, UnitType.Pixel);
di.CssClass = "testClass";
di.Controls.Add(tc);
// DataGrid Table
DataGrid dg = (DataGrid)sender;
Table childTable = (Table)dg.Controls[0];
childTable.Rows.Add(di);
}
}
これにより、次のマークアップが正しい場所に生成されますが、LiteralControl("foo") はありません。
<tr class="testClass" style="height:100px;">
</tr>
データソース自体を操作するのではなく、このアプローチを使用したいと思います。何がうまくいかないのですか?