62,074
社区成员
发帖
与我相关
我的任务
分享
<ul>
<li><a href="?1.0">Item 1.0</a>
<ul>
<li><a href="?1.0.0">Item 1.0.0</a></li>
</ul>
</li>
<li><a href="?1.1">Item 1.1</a></li>
<li><a href="?1.2">Item 1.2</a>
<ul>
<li><a href="?1.2.0">Item 1.2.0</a>
<ul>
<li><a href="?1.2.0.0">Item 1.2.0.0</a></li>
<li><a href="?1.2.0.1">Item 1.2.0.1</a></li>
<li><a href="?1.2.0.2">Item 1.2.0.2</a></li>
</ul>
</li>
<li><a href="?1.2.1">Item 1.2.1</a>
<ul>
<li><a href="?1.2.1.0">Item 1.2.1.0</a></li>
</ul>
</li>
<li><a href="?1.2.2">Item 1.2.2</a>
<ul>
<li><a href="?1.2.2.0">Item 1.2.2.0</a></li>
<li><a href="?1.2.2.1">Item 1.2.2.1</a></li>
<li><a href="?1.2.2.2">Item 1.2.2.2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
/// <summary>
/// 无限级分类绑定树型结构的DropDownList
/// </summary>
/// <param name="ddl">DropDownList控件ID</param>
/// <param name="tbName">分类数据库表名</param>
/// <param name="classID">分类ID</param>
/// <param name="className">分类名</param>
/// <param name="fatherID">父节点ID</param>
public static void BindDdl(System.Web.UI.WebControls.DropDownList ddl,string tbName,string classID,string className,string fatherID)
{
DB db = new DB();
DataTable dt = db.GetDtBySql("select * from " + tbName);
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
if (row[fatherID].ToString().Trim() == "0")//绑定根节点
{
ddl.Items.Add(new System.Web.UI.WebControls.ListItem(row[className].ToString(), row[classID].ToString()));
BindChild(ddl, dt, row[classID].ToString(),classID,className,fatherID,1);
}
}
}
}
private static void BindChild(System.Web.UI.WebControls.DropDownList ddl, DataTable dt, string id, string classID, string className, string fatherID, int length)
{
DataRow[] rows = dt.Select(fatherID + "='" + id + "'", classID);
for (int i = 0; i < rows.Length; i++)
{
ddl.Items.Add(new System.Web.UI.WebControls.ListItem(SpaceLength("┠", length) + rows[i][className].ToString(), rows[i][classID].ToString()));
BindChild(ddl, dt, rows[i][classID].ToString(), classID, className, fatherID,length+1);
}
}
private static string SpaceLength(string str, int i)
{
string space = " ";
for (int k = 0; k < i; k++)
{
if (k == 0)
{
space += str;
}
else
{
space = " " + space;
}
}
return space;
}
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
bind();
}
}
public void bind()
{
string sql="select * from template a where parentid=0 ";
DataSet ds=databind(sql);
if(ds!=null && ds.Tables["tree"].Rows.Count>0)
{
foreach(DataRow dr in ds.Tables["tree"].Rows)
{
TreeNode tn=new TreeNode();
tn.Text=dr["name"].ToString();
tn.Target=dr["id"].ToString();
TreeView1.Nodes.Add(tn);
addtree(tn.Target,tn);
}
}
}
//数据绑定
private DataSet databind(string sql)
{
SqlConnection conn=new SqlConnection("server=.;database=master;uid=sa;pwd=sa");
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"tree");
return ds;
}
//递归查找并加载子节点
public void addtree(string ParentID,TreeNode pNode)
{
string sql="select * from template where parentid='"+ ParentID +"'";
DataSet ds=databind(sql);
if(ds==null || ds.Tables["tree"].Rows.Count<=0)
return;
else
{
foreach(DataRow dr in ds.Tables["tree"].Rows)
{
TreeNode tn=new TreeNode();
tn.Text=dr["name"].ToString();
tn.Target=dr["id"].ToString();
pNode.Nodes.Add(tn);
addtree(tn.Target,tn);
}
}
}