嵌套的GridView

时间:2012-06-09 12:58:53

标签: c# asp.net .net gridview hierarchy

我有一个嵌套的网格视图层次结构。具体来说:我有一个网格视图(比如dt2)嵌套在网格视图中(比如说dt1)。现在,我有许多嵌套在嵌套网格视图(dt2)中的小网格视图,我想填充其中的网格视图,我发现dt2的rowdatabound事件没有像dt1的事件那样被解雇,这让我觉得乏味。

1 个答案:

答案 0 :(得分:1)

关于如何做到这一点,有很多文章;我发现this one最有帮助。它看起来并不那么复杂。

显示列:

List<string> displayColumns = new List<string>();
displayColumns.Add("id");
displayColumns.Add("Name");
displayColumns.Add("Fruit");
displayColumns.Add("BoughtFrom");
displayColumns.Add("Date"); 

分组:

List<GroupColumn> groupColumns = new List<GroupColumn>();
groupColumns.Add(new GroupColumn("Quantity", GroupTypeEnum.Sum));

关系数据集:

SqlConnection connection = new SqlConnection("Your connection string");
connection.Open();

SqlDataAdapter dataAdapter = new SqlDataAdapter(
    "SELECT id, Name, Fruit FROM FruitPrefs",
    connection);
DataTable dtResult1 = new DataTable();
dataAdapter.Fill(dtResult1);

dataAdapter = new SqlDataAdapter(
    "SELECT id, BoughtFrom, Date, Quantity FROM SalesRecords",
    connection);
DataTable dtResult2 = new DataTable();
dataAdapter.Fill(dtResult2);

DataSet dsResults = new DataSet("Results");
dsResults.Tables.Add(dtResult1);
dsResults.Tables.Add(dtResult2);
DataRelation relation1 = new DataRelation(
    "relation1",
    dtResult1.Columns["id"],
    dtResult2.Columns["id"]);
dsResults.Relations.Add(relation1); 

结合:

DataGridSource newGridSource = new DataGridSource(
    dtResult1.DataSet,
    displayColumns,
    groupColumns);
hierarchicalGridView1.DataSource = newGridSource;