public void CreateTree(string parent, ExtAspNet.AccordionPane pnode, DataTable data) { ExtAspNet.Tree tree = new ExtAspNet.Tree(); tree.ShowBorder = false; tree.ShowHeader = false; tree.AutoScroll = true; tree.ID = parent; pnode.Items.Add(tree); foreach (DataRow dr in data.Rows) { if (dr["PARENT_ID"].ToString() == parent) { ExtAspNet.TreeNode node = new ExtAspNet.TreeNode(); node.NodeID = dr["COLUMN_TREE_ID"].ToString(); if (dr["COLUMN_DESCRIPTION"].ToString().Length > 15) { node.Text = dr["COLUMN_TREE_NAME"].ToString() + " " + dr["COLUMN_DESCRIPTION"].ToString().Substring(0, 15) + "..."; } else { node.Text = dr["COLUMN_TREE_NAME"].ToString() + " " + dr["COLUMN_DESCRIPTION"].ToString(); } node.IconUrl = "~/Icons/database_yellow.png"; node.ToolTip = dr["COLUMN_TREE_NAME"].ToString() + " " + dr["COLUMN_DESCRIPTION"].ToString(); //node.NavigateUrl = "ErrorPage.aspx"; node.NavigateUrl = "javascript:void(0)"; node.OnClientClick = "alert('未维护正确的栏目信息,请与管理员联系!'); return false;"; node.EnablePostBack = false; CreateTree(dr["COLUMN_TREE_ID"].ToString(), node, data); tree.Nodes.Add(node); } } }
/// <summary> /// 根据有父子关系的数据表创建树 /// </summary> /// <param name="dt">数据表</param> /// <param name="filter">过滤条件</param> /// <param name="txtFieldName">显示文本的字段名</param> /// <param name="valFieldName">显示值的字段名</param> /// <param name="isPostback">是否允许回发</param> /// <param name="childFieldName">子字段名</param> /// <param name="parFieldName">父字段名</param> public static void CreateTree(ExtAspNet.Tree tree, DataTable dt, string filter, string txtFieldName, string valFieldName, bool isPostback, string childFieldName, string parFieldName) { if (dt.DataSet == null) { DataSet ds = new DataSet(); ds.Tables.Add(dt); ds.Relations.Add("TreeRelation", dt.Columns[childFieldName], dt.Columns[parFieldName], false); } DataView dv = dt.DefaultView; if (!String.IsNullOrEmpty(filter)) { dv.RowFilter = filter; } foreach (DataRowView row in dv) { if (row[childFieldName].ToString() == "__") { continue; } if (row.Row.IsNull(parFieldName) || String.IsNullOrEmpty(row[parFieldName].ToString())) { ExtAspNet.TreeNode node = new ExtAspNet.TreeNode(); node.NodeID = row[valFieldName].ToString();; node.Text = row[txtFieldName].ToString(); node.Icon = ExtAspNet.Icon.Folder; node.IconUrl = "../images/treeview/node.jpg"; node.EnablePostBack = isPostback; //node.Expanded = true; tree.Nodes.Add(node); ResolveSubTree(row.Row, txtFieldName, valFieldName, node); } } //ds.Relations.RemoveAt(0); //ds.Tables.RemoveAt(0); //return tree; }