代码比较简单。就是从一个dataset中取得了有父子关系的类别。然后在dropdownlist中显示,并且显示级别关系,像树形一样。 写了两个方法,第二个方法是递归,其实一个递归方法也可以,但是不清楚了。
#region 类型显示
public void LoadType()
{
DataRow[] drs = ds.Tables[0].Select("ParentK_TypeID = 0 ");
if (drs != null && drs.Length != 0)
{
foreach (DataRow dr in drs)
{
sb = new StringBuilder();
cc = 1;
ListItem li = new ListItem();
li.Text = dr["K_TypeName"].ToString();
li.Value = dr["K_TypeID"].ToString();
this.dropKType.Items.Add(li);
LoadChildType(dr["K_TypeID"].ToString());
}
}
}
StringBuilder sb = null;
int cc = 1;
public void LoadChildType(string parentID)
{
sb.Append("----");
DataRow[] drs = ds.Tables[0].Select("ParentK_TypeID = " + parentID);
if (drs != null && drs.Length != 0)
{
cc += 1;
foreach (DataRow dr in drs)
{
ListItem li = new ListItem();
li.Text = sb.ToString() + dr["K_TypeName"].ToString();
li.Value = dr["K_TypeID"].ToString();
this.dropKType.Items.Add(li);
LoadChildType(dr["K_TypeID"].ToString());
}
}
else
{
cc -= 1;
string temp = sb.ToString().Substring(0, sb.ToString().Length - 4*cc);
sb.Remove(0, sb.ToString().Length);
sb.Append(temp);
return;
}
}
#endregion
#region 类型显示
public void LoadType()
{
DataRow[] drs = ds.Tables[0].Select("ParentK_TypeID = 0 ");
if (drs != null && drs.Length != 0)
{
foreach (DataRow dr in drs)
{
sb = new StringBuilder();
cc = 1;
ListItem li = new ListItem();
li.Text = dr["K_TypeName"].ToString();
li.Value = dr["K_TypeID"].ToString();
this.dropKType.Items.Add(li);
LoadChildType(dr["K_TypeID"].ToString());
}
}
}
StringBuilder sb = null;
int cc = 1;
public void LoadChildType(string parentID)
{
sb.Append("----");
DataRow[] drs = ds.Tables[0].Select("ParentK_TypeID = " + parentID);
if (drs != null && drs.Length != 0)
{
cc += 1;
foreach (DataRow dr in drs)
{
ListItem li = new ListItem();
li.Text = sb.ToString() + dr["K_TypeName"].ToString();
li.Value = dr["K_TypeID"].ToString();
this.dropKType.Items.Add(li);
LoadChildType(dr["K_TypeID"].ToString());
}
}
else
{
cc -= 1;
string temp = sb.ToString().Substring(0, sb.ToString().Length - 4*cc);
sb.Remove(0, sb.ToString().Length);
sb.Append(temp);
return;
}
}
#endregion
本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。