在MSDN中,他们谈到了 TreeView 控件(“绑定到数据”段落):
TreeView 控件也可以通过关系绑定到 XmlDocument 对象或 DataSet 对象。若要绑定到这些数据源之一,请将 TreeView 控件的 DataSource 属性设置为数据源,然后调用 DataBind 方法。
因此,在一个只有 TreeView 的简单 WebForms 页面中,我写道:
DataSet ds = new DataSet();
DataTable dt = new DataTable("Masters");
ds.Tables.Add(dt);
dt.Columns.Add("MasterId", typeof(Int32));
dt.Columns.Add("Name", typeof(String));
DataTable dt1 = new DataTable("Details");
ds.Tables.Add(dt1);
dt1.Columns.Add("DetailId", typeof(Int32));
dt1.Columns.Add("MasterId", typeof(Int32));
dt1.Columns.Add("Name", typeof(String));
DataRow rw;
DataRow rw1;
for (int i = 0; i < 5; i++)
{
rw=dt.NewRow();
dt.Rows.Add(rw);
rw["MasterId"] = i;
rw["Name"] = "Master Name " + i.ToString();
for (int j = 0; j < 10; j++)
{
rw1 = dt1.NewRow();
dt1.Rows.Add(rw1);
rw1["DetailId"] = i * 5 + j;
rw1["MasterId"] = i;
rw1["Name"] = "Detail Name " + j.ToString() + " of Master Name "+ i.ToString();
}
}
ds.Relations.Add(new DataRelation("Masters_Details",dt.Columns["MasterId"], dt1.Columns["MasterId"]));
TreeView1.DataSource = ds;
TreeView1.DataBind();
但是在我设置 DataSource 的地方它会抛出异常:
HierarchicalDataBoundControl 仅接受实现 IHierarchicalDataSource 或 IHierarchicalEnumerable 的数据源。
我理解这是因为 DataSet 没有实现这样的接口......那么他们为什么写可以绑定到“具有关系的 DataSet”?先感谢您