当前位置: 代码迷 >> ASP.NET >> 产品类型达到的、三级或者三级以下改如何修改
  详细解决方案

产品类型达到的、三级或者三级以下改如何修改

热度:3275   发布时间:2013-02-25 00:00:00.0
产品类型达到的、三级或者三级以上改怎么修改?
一个[产品]有所属[产品系列],系列有三个级别、或者三个以上。
数据库里面起码包含三个字段:
[自增ID] [产品类型名称] [父ID/级别]

--------
我想做到下面这这种效果,修改或者增加的时候,能获取到[产品系列]的[自增ID],插入到[产品表]里面



绑定[产品系列]的时候,如何显示在页面的DropDownList里面?

------解决方案--------------------------------------------------------
如果你只是想生成一个树形结构的下拉菜单 可以参考

http://www.hisofter.com/show-11-852.aspx

不必在意他生成的不是DropDownList 因为你从后台一样可以用Request.Form("控件名") 获取值。

你也可以参考他的代码 改到ilist数据源里面 这样也可以从DropDownList里面直接绑定。
------解决方案--------------------------------------------------------
C# code
/// <summary>        /// 樹形DRP        /// </summary>        /// <param name="list">ddl控件</param>        /// <param name="m_DS">數據源</param>        /// <param name="m_Text">默認顯示</param>        /// <param name="m_UpFieldId">父ID</param>        /// <param name="m_FieldId">ID</param>        /// <param name="m_FieldText">顯示內容</param>        public static void BindTreeDrp(DropDownList list, System.Data.DataSet m_DS, string m_Text, string m_UpFieldId, string m_FieldId, string m_FieldText)        {            System.Data.DataTable dt = m_DS.Tables[0];            list.Items.Clear();            if (!string.IsNullOrEmpty(m_Text)) list.Items.Add(new ListItem(m_Text, ""));            System.Data.DataRow[] drs = dt.Select(m_UpFieldId + "=0");            foreach (System.Data.DataRow dr in drs)            {                string bid = dr[m_FieldId].ToString();                string bussesname = dr[m_FieldText].ToString();                list.Items.Add(new ListItem(bussesname, bid));                int chrid = int.Parse(bid);                string blank = " ";                BindNode(list, m_UpFieldId, m_FieldId, m_FieldText, chrid, dt, blank);//绑定子节点            }        } private static void BindNode(System.Web.UI.WebControls.DropDownList list, string m_UpFieldID, string m_FieldID, string m_FieldText, int parentid, System.Data.DataTable dt, string blank)        {            System.Data.DataRow[] drs = dt.Select(m_UpFieldID + "= " + parentid);            foreach (System.Data.DataRow r in drs)            {                string nodeid = r[m_FieldID].ToString();                StringBuilder text = new StringBuilder();                text.Append(blank);                text.Append(r[m_FieldText].ToString());                list.Items.Add(new ListItem(text.ToString(), nodeid));                int sonparentid = System.Int32.Parse(nodeid);                StringBuilder blank2 = new StringBuilder();                blank2.Append(blank);                blank2.Append(" ");                BindNode(list, m_UpFieldID, m_FieldID, m_FieldText, sonparentid, dt, blank2.ToString());            }        }
------解决方案--------------------------------------------------------
一个无限递归
  相关解决方案