动态添加下更多拉框 添加下拉框的内容从数据库读取内容

moonwrite 2010-02-10 02:03:29
第一个下拉框选择内容

如果数据库中还有它的子类的话
就添加多一个下拉框 显示它的子类选项

如果选择生成的下拉框选择的内容又有子类的话
有动态添加一个下拉框 显示它的子类选择

一直... ...
...全文
280 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2010-02-11
  • 打赏
  • 举报
回复
webform:
dropdownlist1.datasource=datatable;
dropdownlist1.text="name";
dropdownlist1.value="id";
dropdownlist1.dataBind();
<select id="sl">
<%for(int i=0;i<dt.rows.cout;++i)%>
<option value="<%=dt.rows[i]["id"].ToString()%>"><%=dt.rows[i]["name"].ToString()%></option>
</select>
............
winform:
combox1.datasource=dt;
combox1.displaymember="name";
combox1.valuemember="id";
.....
moonwrite 2010-02-11
  • 打赏
  • 举报
回复
可能是我的表达有不明确

如:http://search1.taobao.com/browse/ad_search.htm 的 类别

只是可能下拉框更多
kelerqd 2010-02-10
  • 打赏
  • 举报
回复
建议用Ajax 可满足动态添加!
criedshy 2010-02-10
  • 打赏
  • 举报
回复
为什么不用树型控件?
C5662601 2010-02-10
  • 打赏
  • 举报
回复
private void Button3_Click(object sender, System.EventArgs e)
{
int k = Convert.ToInt32(ViewState["PlaceHoldernum"]);
DataSet ds = (DataSet)ViewState["DS"];
DropDownList drop1 = new DropDownList();
drop1.ID = "drop" + k.ToString();
utility.Method.BindList(drop1,ds.Tables[8],"");//身份类别
PlaceHolder2.Controls.Add(drop1);
k++;
DropDownList drop2 = new DropDownList();
drop2.ID = "drop" + k.ToString();
utility.Method.BindList(drop2,ds.Tables[2],"");//学制
PlaceHolder2.Controls.Add(drop2);
k++;
DropDownList drop3 = new DropDownList();
drop3.ID = "drop" + k.ToString();
utility.Method.BindList(drop3,ds.Tables[3]);//科别
PlaceHolder2.Controls.Add(drop3);
k++;
DropDownList drop4 = new DropDownList();
drop4.ID = "drop" + k.ToString();
utility.Method.BindList(drop4,ds.Tables[4]);//年级
PlaceHolder2.Controls.Add(drop4);
k++;
DropDownList drop5 = new DropDownList();
drop5.ID = "drop" + k.ToString();
utility.Method.BindList(drop5,ds.Tables[5]);//班别
PlaceHolder2.Controls.Add(drop5);
k++;
PlaceHolder2.Controls.Add(new HtmlGenericControl("br"));
ViewState["PlaceHoldernum"] = k;
}
C5662601 2010-02-10
  • 打赏
  • 举报
回复

private void createdrop()
{
int i = 0;
int k = 0;
DataSet ds = (DataSet)ViewState["DS"];
if(ViewState["PlaceHoldernum"] != null)
{
i = Convert.ToInt32(ViewState["PlaceHoldernum"].ToString());
for(; k < i; k++)
{
DropDownList tmp = new DropDownList();
tmp.ID = "drop" + k.ToString();
switch(k % 5)
{
case 0:
utility.Method.BindList(tmp,ds.Tables[8],"");//身份类别
break;
case 1:
utility.Method.BindList(tmp,ds.Tables[2],"");//学制
break;
case 2:
utility.Method.BindList(tmp,ds.Tables[3]);//科别
break;
case 3:
utility.Method.BindList(tmp,ds.Tables[4]);//年级
break;
case 4:
utility.Method.BindList(tmp,ds.Tables[5]);//班别
break;
default:
break;
}
PlaceHolder2.Controls.Add(tmp);
if((k+1) % 5 == 0)
PlaceHolder2.Controls.Add(new HtmlGenericControl("br"));
}
}
}
C5662601 2010-02-10
  • 打赏
  • 举报
回复
PlaceHolder
moudy 2010-02-10
  • 打赏
  • 举报
回复
如果级数不限定,个人认为用树控件更好。不然下拉框位置控制也麻烦,每次刷新时还要根据当前显示的内容再次动态生成控件,多麻烦。

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧