关于网友提出的“暗黑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多树联动写代码很烦琐-_-
如果你分类很多 分类下面的子类也很多的话 就最好新建一个 窗口点击之后弹出来 一个Model对话框 出来让别人选择 这样可以在Model框里面 增加分页 增加搜索 增加排序 然后等用户选中 后把值传给 页面就OK了 做你想做的任何操作
解决方案3: 1.dropdownlist上直接画树.很多网站都是这么做的.
没有必要做那么多dropdownlist.
2.还可以用div中包一个treeview控件.不过这种速度好象是不快.
3.页面只显示树的两级,依据点击位置不同,而再次换到同一页面.虽然不太好理解,但程序相对好写.