#region 树状数据表,处理排序 |
//创建finaldata表和originaldata表,做为源表和处理后的表格 |
DataTable finaldata; |
DataTable originaldata; |
#region 获取表格 |
/// <summary> |
/// 说明:查询数据库,获取表格 |
/// 作者:yxx |
/// 时间:2013-11-12 |
/// </summary> |
protected DataTable GetDataTable() |
{ |
DataSet ds = Common.NoPager2( "factorManagement" , "" , "ID,sort_parentID,sort_ID,sort_name,TreeLevel,Valided" , "" , "sortType=2 AND factorManagement.Valided=1" ); |
DataTable dt = ds.Tables[0]; |
return dt; |
} |
#endregion |
//调用处理方法 |
protected void HandledTable() |
{ |
getdata(); |
//1为产品根 |
step(2); |
//删除表中第一行 |
finaldata.Rows.RemoveAt(0); |
} |
//调用GetDataTable得到数据,并处理finaldata,originaldata表 |
protected void getdata() |
{ |
finaldata = GetDataTable().Clone(); |
finaldata.Columns.Add( "select" , typeof ( int )); |
originaldata = GetDataTable(); |
originaldata.Columns.Add( "select" , typeof ( int )); |
} |
//遍历过程 |
protected void step( int i) |
{ |
//调用GetChildNode 获取子节点信息 |
DataTable child = GetChildNode(i); |
int childCount = child.Rows.Count; |
//找到本节点信息 |
DataRow[] sortAdd = originaldata.Select( "Valided=1 and ID='" + i + "'" ); |
DataRow sort = sortAdd[0]; |
if (childCount == 0) |
{ |
sort[ "select" ] = 1; |
} |
else |
{ |
sort[ "select" ] = 0; |
} |
// finaldata中添加本节点 |
finaldata.ImportRow((DataRow)sort); |
//如存在子节点 |
if (childCount > 0) |
{ |
for ( int j = 0; j < child.Rows.Count; j++) |
{ |
int k = Convert.ToInt16(child.Rows[j][ "ID" ].ToString()); |
step(k); //进行递归 |
} |
} |
} |
//查找子节点 |
protected DataTable GetChildNode( int x) |
{ |
DataRow[] sortChild = originaldata.Select( "Valided=1 and sort_parentID='" + x + "'" ); |
DataTable dt = originaldata.Clone(); |
for ( int i = 0; i < sortChild.Length; i++) |
{ |
dt.ImportRow((DataRow)sortChild[i]); |
} |
return dt; |
} |
#endregion |
by: 发表于:2018-01-03 10:42:51 顶(0) | 踩(0) 回复
??
回复评论