DropDownList实现树形结构显示
2007-11-15 23:31
330 查看
转自:http://hi.baidu.com/wf225/blog/item/f0e25a6659f31924aa184c60.html
public System.Web.UI.WebControls.DropDownList AddDropDownList (System.Web.UI.WebControls.DropDownList droplist, int ParentID, ListItem plist)
{
string NodeId = "ID";
string ParentId = "ParentId";
string NodeName = "Name";
//DataSet dsFlowType = myData.GetFlowTypeDS();
DataView dvTree = new DataView(dsFlowType.Tables[0]);
//过滤ParentId,得到当前的所有子节点
dvTree.RowFilter = ParentId + " = " + ParentID.ToString();
foreach (DataRowView drv in dvTree)
{
//-----------------------------------------
int depth = 0;
int NodeID = Convert.ToInt32(drv[NodeId]); ;
Depth(NodeID, ref depth); //计算当前节点深度
string blank = "";
if (ParentID != 0)
{
for (int i = 1; i <= depth; i++)
{
blank += "|-";
}
}
//-----------------------------------------
ListItem list = new ListItem();
list.Text = blank + drv[NodeName].ToString().Trim();
list.Value = drv[NodeId].ToString().Trim();
droplist.Items.Add(list); //***注意区别:根节点
AddDropDownList(droplist, Int32.Parse(drv[NodeId].ToString().Trim()), list); //递归
}
return droplist;
}
//计算当前节点深度
public int Depth(int NodeID, ref int depth)
{
string NodeId = "ID";
string ParentId = "ParentId";
//DataSet dsFlowType = myData.GetFlowTypeDS();
DataView dvTree = new DataView(dsFlowType.Tables[0]);
//过滤ParentId,得到当前的所有父节点
dvTree.RowFilter = NodeId + " = " + NodeID.ToString();
foreach (DataRowView drv in dvTree)
{
int ID = Convert.ToInt32(drv[ParentId]);
if (ID != 0)
{
depth += 1;
Depth(ID, ref depth); //递归
}
}
return depth;
}
public System.Web.UI.WebControls.DropDownList AddDropDownList (System.Web.UI.WebControls.DropDownList droplist, int ParentID, ListItem plist)
{
string NodeId = "ID";
string ParentId = "ParentId";
string NodeName = "Name";
//DataSet dsFlowType = myData.GetFlowTypeDS();
DataView dvTree = new DataView(dsFlowType.Tables[0]);
//过滤ParentId,得到当前的所有子节点
dvTree.RowFilter = ParentId + " = " + ParentID.ToString();
foreach (DataRowView drv in dvTree)
{
//-----------------------------------------
int depth = 0;
int NodeID = Convert.ToInt32(drv[NodeId]); ;
Depth(NodeID, ref depth); //计算当前节点深度
string blank = "";
if (ParentID != 0)
{
for (int i = 1; i <= depth; i++)
{
blank += "|-";
}
}
//-----------------------------------------
ListItem list = new ListItem();
list.Text = blank + drv[NodeName].ToString().Trim();
list.Value = drv[NodeId].ToString().Trim();
droplist.Items.Add(list); //***注意区别:根节点
AddDropDownList(droplist, Int32.Parse(drv[NodeId].ToString().Trim()), list); //递归
}
return droplist;
}
//计算当前节点深度
public int Depth(int NodeID, ref int depth)
{
string NodeId = "ID";
string ParentId = "ParentId";
//DataSet dsFlowType = myData.GetFlowTypeDS();
DataView dvTree = new DataView(dsFlowType.Tables[0]);
//过滤ParentId,得到当前的所有父节点
dvTree.RowFilter = NodeId + " = " + NodeID.ToString();
foreach (DataRowView drv in dvTree)
{
int ID = Convert.ToInt32(drv[ParentId]);
if (ID != 0)
{
depth += 1;
Depth(ID, ref depth); //递归
}
}
return depth;
}
相关文章推荐
- DropDownList中显示无限级树形结构
- Python实现 Linux tree命令:用树形结构显示目录结构
- DropDownList中显示无限级树形结构
- 在DropDownList中显示树形结构
- DropDownList 中显示树形结构内容
- dropdownlist中显示树形结构内容
- DropDownList中显示无限级树形结构
- 在DropDownList中显示树形结构
- 在DropDownList中显示树形结构
- DropDownList中显示无限级树形结构
- 在DropDownList中显示树形结构
- 【转】DropDownList中显示无限级树形结构
- ReactJs实现树形结构的数据显示的组件
- dropdownlist显示树形结构
- ReactJs实现树形结构的数据显示的组件的示例
- linux tree命令--显示目录的树形结构
- Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
- 点阵字库结构以及点阵字显示的实现原理
- Hibernate中,基于Annotation的简单树形结构的实现
- 根据数据的父子关系创建树形结构并实现遍历