привязки древовидного представления к таблице данных

#c# #asp.net

#c# #asp.net

Вопрос:

У меня есть таблица данных, содержащая столбцы topicid, название темы, идентификатор категории, название категории, идентификатор подкатегории, название подкатегории. Я должен привязать эту таблицу к древовидному представлению, чтобы названия тем отображались как родительский узел, название категории — как дочерний узел тем, а название подкатегории — как дочерний узел категории.

Все узлы, имеющие имя в качестве полей идентификатора пример узла темы, имеют название темы и идентификатор темы

узел категории в качестве имени категории и идентификатора категории, а узел подкатегории имеет имя и идентификатор подкатегории.

Ответ №1:

вот код…

 DataTable dtbl1=new DataTable();//parent datatable
DataTable dtbl2=new DataTable();//child datatable

DataSet ds = new DataSet();
ds.Tables.Add(dtbl1);
ds.Tables.Add(dtbl2);
ds.Relations.Add("Children", dtbl1.Columns["dtb1ID"], dtbl2.Columns["dtbl2ID"]);//define parent child relation in dataset

if (ds.Tables[0].Rows.Count > 0)
{
    trv.Nodes.Clear();
    Int32 count = 0;

    foreach(DataRow masterRow in  ds.Tables[0].Rows)
    {
        TreeNode masterNode = new TreeNode((String)masterRow["dtbl1ColumnYouWantToDisplay"], Convert.ToString(masterRow["dtbl1ID"]));
        trv.Nodes.Add(masterNode);

        foreach (DataRow childRow in masterRow.GetChildRows("Children"))
        {
            TreeNode childNode = new TreeNode((String)childRow["dtbl2ColumnYouWantToDisplay"], Convert.ToString(childRow["dtb2ID"]));
            masterNode.ChildNodes.Add(childNode);
            count  ;
        }
    }
    trv.ExpandAll();
}