三级级联菜单绑定下拉框?ASP.NET

来源:百度知道 编辑:UC知道 时间:2024/09/27 07:18:32
三级菜单同时显示所有的一个下拉框!
要求设计一个数据库表.只能一个表!
表的设计应该是这样!但不知道如何绑定?
用存储过程?递归?
id adress 父id

广东
-广州
-深圳
-福田区
-罗湖区
广西
-南宁
-青秀区
-东葛区
广东
-广州
-深圳
-福田区
-罗湖区
广西
-南宁
-青秀区
-东葛区

注意:是一个下拉框!而不是AJAX,是当打开页面的时候就显示三级级联菜单而不是点一级显示二级!

那个高手写吧,写出来我就给分!反正思路也差不多这样了.递归.之类的也行.不过太麻烦

你在人才网站看到的地区是不是下拉框?

表字段设计假定表名为trees:
id listname fatherid deep
1 广州 0 1
2 深圳 1 2
3 福田区 2 3
4 罗湖区 2 4
解释: fatherid意思是上级菜单 0表示最上层 deep表示项深度 1表示最上层(用0表示最好,这里为了你理解设定1为最上层)

实现想法:
首先把最顶层的(例如广东省,广西省)先读取出来,然后再读取下一级记录(深圳,南宁)按照fatherid将记录插入到上层记录后面顺便加上一个-,依次按照deep深度和fatherid 把相应深度的项插入到上一深度的项后面,这样多少级的列表都可以实现
实现关键 1.确定深度也就是最大deep值
2.把读取出来的记录放在DataSet的表里,所有操作结束后再绑定到DropDownList上;
//我这里没有代码给你,如果你实现不了,写问题补充!!!!!!!我抽时间帮你写出来,你提问的这个问题比较有用,建议你自己实现,往后印象还深!

SqlConnection conn=new SqlConnection("server=.;database=***;uid=**;pwd=**");
SqlDataAdapter sda=new SqlDataAdapter("select 地区代码,地区名称 from 地区表 order by 地区代码",conn);
DataSet ds=new DataSet();
sda.Fill(ds);
dropDownList1.Items.Clear();
foreach(DataRow dr in ds.Tables[0].Rows)
{
ListItem li=new ListItem();
li.Value=dr["地区代码"].ToString();
li.Text=dr["地区名称"].ToString();