Код для привязки Telerik TreeView

Я новичок в работе с инструментами Telerik, в настоящее время у меня есть задача связать трехуровневое иерархическое дерево PARENT, CHILD, SUBCHILD. Я много гуглил, а также посетил демонстрационный сайт Telerik, но этот код не работает в моем случае.

Пожалуйста, предоставьте код, чтобы связать Radtree. Моя структура таблицы:

**ID**    **ParentID**  **Descriptoin**

1           1   Live animals

2           1   Live horses, asses, mules and hinnies

3           2   Live pure-bred breeding animals

4           2   Other live hoses, asses, mules and hinnies

1 ответ

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GenerateTreeView();
            }
        }

Приведенный ниже метод сделает выбор из вашей таблицы - создаст связь между идентификатором (который, я полагаю, является узлом "MAIN PARENT" в виде дерева) и "Parent_ID" (который я предполагаю, является дочерним узлом). Затем будет создан родительский узел, а затем для каждого дочернего элемента заполняется родительский узел методом. RecursivelyPopulate

        private void GenerateTreeView()
        {
            SqlConnection con = new SqlConnection("CONN STR");
            con.Open();
            SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM MY TABLE", con);
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            ds.Relations.Add("NodeRelation", 
                             ds.Tables[0].Columns["ID"],
                             ds.Tables[0].Columns["ParentID"]);
            foreach (DataRow dbRow in ds.Tables[0].Rows)
            {
                if (dbRow.IsNull("PARENTID"))
                {
                    RadTreeNode node = CreateNode(dbRow["Description"].ToString(), true);
                    RadTreeView1.Nodes.Add(node);
                    RecursivelyPopulate(dbRow, node);
                }
            }
        }

Метод ниже (RecursivelyPopulate) будет для каждого дочернего в отношении отношения создавать дочерний узел для родителя, созданного в методе выше (GenerateTreeView)

        private void RecursivelyPopulate(DataRow dbRow, RadTreeNode node)
        {
               foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
               {
                   RadTreeNode childNode = CreateNode(childRow["Description"].ToString();
                   node.Nodes.Add(childNode);
                   RecursivelyPopulate(childRow, childNode);
               }
        }

** В зависимости от структуры вашей таблицы вы можете иметь неопределенное количество отношений Parent-Child, используя приведенный выше фрагмент кода

Другие вопросы по тегам