用DropDownList动态选择表,并通过该表读出相应字段的联动菜单!。。。

flyso 2006-05-31 11:33:38
代码如下
一级菜单(选择表)
<asp:DropDownList ID="DropDownList2" runat="server" CssClass="DropDownList" AutoPostBack="True">
<asp:ListItem Value="table1" Selected="True">数据表1</asp:ListItem>
<asp:ListItem Value="table2">数据表2</asp:ListItem>
<asp:ListItem Value="table3">数据表3</asp:ListItem>
</asp:DropDownList>
二级菜单(通过上级菜单选择的表读出相关字段)
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2"
DataTextField="cname" DataValueField="cname" AutoPostBack="True" CssClass="DropDownList">
</asp:DropDownList>
数据源
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:yy960ConnectionString %>"
SelectCommand="SELECT DISTINCT [cname] FROM [table1] Where [tg]=0"></asp:SqlDataSource>

注:每个表都有相同字段cname

问:

怎么把数据源中的table1换成一级菜单选择的表(DropDownList2.SelectedValue),然后通过该表在
二级菜单(DropDownList1)读出相应的字段呢
...全文
297 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanchi2002 2006-06-01
  • 打赏
  • 举报
回复
不复杂的。
zhuowei 2006-06-01
  • 打赏
  • 举报
回复
你得意思还不就是搞一个联动菜单?

干吗用datasource这么麻烦

<asp:DropDownList ID="DropDownList2" runat="server" CssClass="DropDownList" AutoPostBack="True">
<asp:ListItem Value="table1" Selected="True">数据表1</asp:ListItem>
<asp:ListItem Value="table2">数据表2</asp:ListItem>
<asp:ListItem Value="table3">数据表3</asp:ListItem>
</asp:DropDownList>
二级菜单(通过上级菜单选择的表读出相关字段)
<asp:DropDownList ID="DropDownList1" runat="server"
DataTextField="cname" DataValueField="cname" AutoPostBack="True" CssClass="DropDownList">
</asp:DropDownList>


然后添加第一个dropdownlist得SelectedIndexChanged事件函数

在函数里面根据这个dropdownlist得text来确定第二个items:

SqlDataReader sourcenoReader = ExecStorceFunction(Dropdownlist1.SelectedItem.Text)//调用事先写好得根据列表1得字符串查找列表二得函数
while(sourcenoReader.Read())
{
Dropdownlist2.Items.Add(new ListItem(sourcenoReader["codeno"].ToString(),sourcenoReader["codeid"].ToString()));
}
sourcenoReader.Close();

aliketen 2006-06-01
  • 打赏
  • 举报
回复
没有做过,无限级就搞过
Jeffris 2006-05-31
  • 打赏
  • 举报
回复
你这样的我没有做过,不过我用不同的方法实现了,虽然麻烦点
我用两个DropDownList,比方说:SchoolList和SchoolIDList,其中前一个放名称,后一个放他在表中对应的编号,每当你在前一个下拉列表中选择了之后,就用SchoolIDList.items[SchoolList.SelectedIndex].ToString()来引用,同样的再作一个DepartmentList和DepartmentIDList,然后在SchoolList_SelectedIndexChanged事件当中判断其值,再重新读一遍对应的Department列表,填充到DepartmentList中,这个办法虽然麻烦点,但非常的灵活
注明一下:School代表学院 Department代表系,也就是每个学院下面都有许多系,,其实就是联动菜单
Layto 2006-05-31
  • 打赏
  • 举报
回复
http://singlepine.cnblogs.com/articles/257954.html
flyso 2006-05-31
  • 打赏
  • 举报
回复
我初学,能详细点吗~!谢谢。。。
kingdhy 2006-05-31
  • 打赏
  • 举报
回复
(1)读取所有的表名(参考读取所有数据表的相关内容),绑定到dropdownlist1中,并将此DropDownList的AutoPostBack属性改为true
(2)循环,将选定表的字段名:this.DropDownList2.Items.Add(ds.Tables[0].Columns[i].Caption)
flyso 2006-05-31
  • 打赏
  • 举报
回复
我想是不是能通过修改
SelectCommand="SELECT DISTINCT [cname] FROM [table1] Where [tg]=0"></asp:SqlDataSource>
来实现呢?
把table1改成输出DropDownList2.SelectedValue的值
该如何输出,如果是ASP的话<%Response.Write DropDownList2.SelectedValue%>应该就可以了
那ASP.NET该怎么写呢

62,254

社区成员

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

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

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

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