暗黑3 难度 [ 有点难度的dropdownlist ]----无限分类商品修改时候如何保留其分类状态???????????

来源:互联网  时间:2016/8/12 23:00:13

关于网友提出的“暗黑3 难度 [ 有点难度的dropdownlist ]----无限分类商品修改时候如何保留其分类状态???????????”问题疑问,本网通过在网上对“暗黑3 难度 [ 有点难度的dropdownlist ]----无限分类商品修改时候如何保留其分类状态???????????”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:暗黑3 难度 [ 有点难度的dropdownlist ]----无限分类商品修改时候如何保留其分类状态???????????
描述:

添加商品时候是:PlaceHolder中动态加载Dropdownlist 实现,具体关键代码


    protected void Page_Load(object sender, EventArgs e)
    {
        ArrayList al;
        if (Session["Controls"] != null)
        {
            al = (ArrayList)Session["Controls"];
            PH.Controls.Clear();
            for (int i = 0; i < al.Count; i++)
            {
                DropDownList ddl = (DropDownList)al[i];
                ddl.SelectedIndexChanged += new EventHandler(dl_SelectedIndexChanged);
                PH.Controls.Add(ddl);
            }
        }
        if (!IsPostBack)
        {
            CreateControls("select * from t_sj_classinfo where upid=0", 0);
        }
    }
    void CreateControls(string sql, int CurID)
    {
        ArrayList al;
        
        if (Session["Controls"] == null)
            al = new ArrayList();
        else
        {
            al = (ArrayList)Session["Controls"];
            for (int i = 0; i < al.Count; i++)
            {
                DropDownList ddl_Remove = (DropDownList)al[i];
                if (Convert.ToInt32(ddl_Remove.ID) > CurID)
                {
                    i--;
                    al.Remove(ddl_Remove);
                    PH.Controls.Remove(ddl_Remove);
                }
            }
        }
        SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=123456;database=test");
        SqlCommand cmd = new SqlCommand(sql, conn);
        DataTable dt = new DataTable();
        SqlDataAdapter drp = new SqlDataAdapter(cmd);
        drp.Fill(dt);
        if (dt.Rows.Count > 0)
        {
            DropDownList dl = new DropDownList();
            CurID++;
            dl.ID = CurID.ToString();
            dl.AutoPostBack = true;
            dl.SelectedIndexChanged += new EventHandler(dl_SelectedIndexChanged);
            dl.DataSource = dt;
            dl.DataTextField = "ClassName";
            dl.DataValueField = "PKID";
            dl.DataBind();
            dl.Items.Insert(0, new ListItem("--请选择--", "0"));
            al.Add(dl);
            PH.Controls.Add(dl);
            Session["Controls"] = al;
        }
    }
    void dl_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList dl = (DropDownList)sender;
        string LBID = dl.SelectedValue;
        CreateControls("select * from t_sj_classinfo where upid=" + LBID, Convert.ToInt32(dl.ID));
    }

现在要修改产品,如果要修改产品分类,请问修改页面如何根据产品分类在DropDownList绑定默认的分类项(有几级分类就对应几个DropDownList,并且默认选择好商品现在的分类项)。谢谢,如果不用DropDownList 还有什么比较更好的方法,谢谢!
解决方案1:

以前一直用DropDownList,分类是在生成的时候拼的"-"号
现在改成TreeView N个树联动:)
TreeView多树联动写代码很烦琐-_-

解决方案2:

如果你分类很多 分类下面的子类也很多的话 就最好新建一个 窗口点击之后弹出来 一个Model对话框 出来让别人选择 这样可以在Model框里面 增加分页  增加搜索 增加排序 然后等用户选中 后把值传给 页面就OK了 做你想做的任何操作 

解决方案3:

1.dropdownlist上直接画树.很多网站都是这么做的.
没有必要做那么多dropdownlist.
2.还可以用div中包一个treeview控件.不过这种速度好象是不快.
3.页面只显示树的两级,依据点击位置不同,而再次换到同一页面.虽然不太好理解,但程序相对好写.

上一篇局域网:OO被封锁
下一篇菜鸟~请教图片上传问题~~
明星图片
相关文章
《暗黑3 难度 [ 有点难度的dropdownlist ]----无限分类商品修改时候如何保留其分类状态???????????》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)