在项目中遇到这样一个问题,需要在显示一个多层次的DropdownList
形式如下:
A
--A1
--A2
B
--B2
---B23
从数据库中取得不同层次的(level=0,1,2)分成3层
请用C#语言实现下,谢谢!我已经通过查询取得level=0的所有记录,下面如何通过递归取得它的所有子节点,如A的子节点 A1 A2(A1,A2的parentid为A的id) 想写一个for循环然后通过层次一次加上横线-
我C#不太熟练,麻烦高手写一个,我模仿下,辛苦了。
形式如下:
A
--A1
--A2
B
--B2
---B23
从数据库中取得不同层次的(level=0,1,2)分成3层
请用C#语言实现下,谢谢!我已经通过查询取得level=0的所有记录,下面如何通过递归取得它的所有子节点,如A的子节点 A1 A2(A1,A2的parentid为A的id) 想写一个for循环然后通过层次一次加上横线-
我C#不太熟练,麻烦高手写一个,我模仿下,辛苦了。
{
string Sql="select province,provinceid from province";
SqlDataAdapter da=new SqlDataAdapter(Sql,cn);
DataSet ds=new DataSet();
da.Fill(ds);
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
ListItem list=new ListItem();
list.Text=ds.Tables[0].Rows[i]["province"].ToString();
list.Value=ds.Tables[0].Rows[i]["provinceid"].ToString();
this.DropDownList1.Items.Add(list);
string sql="select city,cityid from city where father="+ds.Tables[0].Rows[i]["provinceid"].ToString();
AddChild(sql,1);
}
}
public void AddChild(string Sql,int j)
{
SqlDataAdapter da=new SqlDataAdapter(Sql,cn);
DataSet ds=new DataSet();
da.Fill(ds);
string Child="";
for(int n=0;n<j;n++)
{
Child+="---";
}
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
ListItem list=new ListItem();
list.Text=Child+ds.Tables[0].Rows[i][0].ToString();
list.Value=ds.Tables[0].Rows[i][1].ToString();
this.DropDownList1.Items.Add(list);
try
{
j++;
string sql="select area,areaid from area where father="+ds.Tables[0].Rows[i]["cityid"].ToString();
AddChild(sql,j);
}
catch
{}
}
}
{
string sql="select area,areaid from area where father="+ds.Tables[0].Rows[i]["cityid"].ToString();
j=2;
AddChild(sql,j);
}
catch
{}
<option value="110100">---市辖区</option>
<option value="110101">------东城区</option>
<option value="110102">------西城区</option>
<option value="110103">------崇文区</option>
<option value="110104">------宣武区</option>
<option value="110105">------朝阳区</option>
<option value="110106">------丰台区</option>
<option value="110107">------石景山区</option>
<option value="110108">------海淀区</option>
<option value="110109">------门头沟区</option>
<option value="110111">------房山区</option>
<option value="110112">------通州区</option>
<option value="110113">------顺义区</option>
<option value="110114">------昌平区</option>
<option value="110115">------大兴区</option>
<option value="110116">------怀柔区</option>
<option value="110117">------平谷区</option>
<option value="110200">---县</option>
<option value="110228">------密云县</option>
<option value="110229">------延庆县</option>
我的效果是这样的...
1.取出全部内容
2.遍历一下给内容前加层次前缀(---或者空格等)
3.使用DataTable.Select或DataView的fliter来排序
4.绑定到dropdownlist
ID PIDA null
A1 A
A2 AB null
B1 B
B2 B
---------------------------------------------
EMail:[email protected] 请给我一个与您交流的机会!