Код для привязки 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, используя приведенный выше фрагмент кода