In MSDN sagen sie über TreeView-Steuerelement („zu Datenbindung“ Absatz):ASP.NET Bindung TreeView-Steuerelement zu einem Dataset
Das TreeView-Steuerelement auch auf ein XmlDocument Objekt oder einen DataSet gebunden werden kann, Objekt mit Beziehungen. Um an eine dieser Datenquellen zu binden, setzen Sie die DataSource-Eigenschaft des TreeView-Steuerelements auf die Datenquelle und rufen Sie dann die DataBind-Methode auf.
So in einer einfachen WebForms Seite mit nur einem TreeView i schrieb:
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();
Aber in Zeile, wo ich Datasource es Ausnahme auslöst:
HierarchicalDataBoundControl akzeptiert nur Datenquellen, die IHierarchicalDataSource implementieren oder IHierarchischEnumerable.
Ich verstehe, dass dies auftritt, weil DataSet keine solche Schnittstelle implementiert ... also warum sie schreiben, ist es möglich, an ein "DataSet mit Beziehungen" zu binden? Vielen Dank im Voraus
Möglicherweise hilfreich: http://www.codeproject.com/Articles/25753/Binding-the-ASP -NET-TreeView-zu-einem-DataSet-or-a-Ob Obwohl es die Sprache in der Dokumentation nicht erläutert. –
tks Ich las diesen Artikel .... und viele von ihnen, wo TreeView Knoten für Knoten bevölkert hat ... aber der Kernpunkt meiner Frage ist ** warum ** sie sagen, ist auf native Weise möglich. –
In solch einem Fall auf MSDN bewerte ich das Thema normalerweise als nicht hilfreich und gebe dann eine Erklärung meiner Argumentation oder was stattdessen da sein sollte. zB: Wo ist das Beispiel für diesen Fall, was ist das nächste, was dir einfällt? –