如我有数据
班级学生表
班级 学生编号
一班 070101
一班 070102
二班 070201
学生表
学生编号 学生姓名
070101 张三
070102 李四
070201 王五
------------------------
然后现在要绑定到TreeView的最终样式为
一班
张三
李四
二班
王五
我要怎么来进行绑定最好
谢谢
------解决方案--------------------------------------------------------
先绑定第一层
然后在绑定第一层的函数里面绑定第二层
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
private bool isHaveCheckBox = false;
private bool isExpanded = false;
private DataTable dtTree = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeView1.Nodes.Add(getRootAreaTreeNode(false, false));
}
}
#region TreeViewBind
/// <summary>
/// 获取包含全部子节点的根节点数据
/// </summary>
/// <param name= "haveCheckBox "> 节点是否产生CheckBox </param>
/// <param name= "expanded "> 节点是否展开 </param>
/// <returns> </returns>
public Microsoft.Web.UI.WebControls.TreeNode getRootAreaTreeNode(bool haveCheckBox, bool expanded)
{
string rootID = "班级 ";
string rootName = "班级 ";
isHaveCheckBox = haveCheckBox;
isExpanded = expanded;
#region populate root node
Microsoft.Web.UI.WebControls.TreeNode rootNode = new Microsoft.Web.UI.WebControls.TreeNode();
rootNode.Text = rootName;
rootNode.ID = rootID;
rootNode.Expanded = true;
rootNode.CheckBox = isHaveCheckBox;
#endregion
//假设表 banji 和 xuesheng 数据操作部分用来sqlhelper楼主可 自行改成自己的
DataSet dsTree = SqlHelper.ExecuteDataset(connstring, CommandType.Text, "select 班级 as code, 班级 as sName, '班级 ' as parentCode from banji
union select banji.学生编号 as code, 学生姓名 as sName, 班级 as parentCode from xuesheng inner join banji on banji.学生编号 = xuesheng.学生编号 ");
dtTree = dsTree.Tables[0];
this.populateAreaTree(rootID, rootNode);
return rootNode;
}
private void populateAreaTree(string parentID, Microsoft.Web.UI.WebControls.TreeNode pNode)
{
DataRow[] dRows = dtTree.Select( "parentCode= ' " + parentID + " ' ");
if (dRows.Length > 0)
{
Microsoft.Web.UI.WebControls.TreeNode Node = null;
foreach (DataRow drow in dRows)
{
Node = new Microsoft.Web.UI.WebControls.TreeNode();
Node.Text = drow[ "SortName "].ToString();
Node.ID = drow[ "SortID "].ToString();
Node.Expanded = isExpanded;
pNode.Nodes.Add(Node);
populateAreaTree(Node.ID, Node); //递归
}
}
}
#endregion
------解决方案--------------------------------------------------------
顶 先把整个表读出来放到DataTable里再进行筛选
------解决方案--------------------------------------------------------
写两个函数,找出父子关系,迭代一下,还是简单的
------解决方案--------------------------------------------------------