asp.net 如何只用一个下拉框显示类似数控件那样级别菜单??帮帮我这个菜鸟!!

解决方案 »

  1.   

    用JS,JQUERY吧,去搜下有很多例子的
      

  2.   

    dropdownlist 递归加载。 public void BindItem(String ids, IList<GoodsTypeInfo> goodTypeList)
            {
                //根据List长度循环
                for (int j = 0; j < goodTypeList.Count; j++)
                {
                    GoodsTypeInfo tyInfo = goodTypeList[j];                //用副ID中截取的字段和父ID相比较
                    if (tyInfo.FuIDString[tyInfo.FuIDString.Length - 1].Equals(ids))
                    {
                        //实例化一项
                        ListItem item = new ListItem();                    //当是根目录是,不加下划线加载,其他情况,随着级别的降低,下划线随之增多
                        if (tyInfo.FuIDString[0] == "0")
                        {
                            item.Value = Convert.ToString(tyInfo.TypeID);
                            item.Text = GetStr(0) + Convert.ToString(tyInfo.TypeName);
                            //添加项
                            this.DropDownList1.Items.Add(item);                       
                            this.dropDownTo.Items.Add(item);
                            //再次循环
                            BindItem(tyInfo.TypeID + "", goodTypeList);
                        }
                        else
                        {
                            item.Value = Convert.ToString(tyInfo.TypeID);
                            item.Text = GetStr(tyInfo.FuIDString.Length)+ Convert.ToString(tyInfo.TypeName);
                            //添加项
                            this.DropDownList1.Items.Add(item);
                            this.dropDownTo.Items.Add(item);
                            //再次循环
                            BindItem(tyInfo.TypeID + "", goodTypeList);
                        }
                    }
                }
            }
            //用下划线“_”缩进
            public String GetStr(int lev)
            {
                String str = "";
                //计算下划线的长度并返回
                for (int i = 0; i < lev; i++)
                {
                    str += "__";
                }
                return str;
            }
            public string[] FuIDString {
                get
                {
                    return TypeFuID.Split('_');
                }
            }