两个下拉框级联的问题

dengyigeqingtian 2009-03-15 07:45:50
学校的做的项目,下拉框级联没有很好的实现思路...呵呵,所以到网上请教各位了。
有两个表,机构表--BranchInfo,部门表--DepartInfo
BranchInfo表
BranchId--机构ID
BranchName--机构名
DepartInfo表
DepartId--部门ID
DepartName--部门名称
BranchId--机构ID,外键

定义了两个方法:
List<BranchInfo> list=BranchOperator.GetBranch();--获得机构信息
List<DepartInfo> list=DepartOperator.GetDepartByBranchId(int branchId);--通过branchId获得部门信息

想要实现:选择不同的机构下拉框时,部门下拉框能够现实相应的部门,各个机构拥有的部门是不同的

不知道是用Dropdownlist还是用Select...没有思路...希望各位给一点意见,详细一点的思路,呵呵~我是菜鸟...谢谢了

再谢一次 - -呵呵
...全文
187 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hupengcscs 2009-03-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dengyigeqingtian 的回复:]
引用 1 楼 walkghost 的回复:
用dropdownlist,两级联动。
把第一个用机构表绑定。在这个dpl的selectchange事件里从数据库中查询部门表,然后绑定到部门的dpl里。
这样可以吧?数据绑定的代码不用写给你了吧?

谢谢~
你说的是OnSelectedIndexChanged事件吗?我原来是用这个事件,但它压根没跳进去,不知道哪出错了。不过有没有别的方法,这种方法选一次就要查一次连一次数据库.....有没有更好的方法呢?
[/Quote]


你要把AUTOPOSTBACK属性设为TRUE这样才能请求服务器,这样就能实现你的要求了。但是这样每选择一次都会请求服务器,如果你用AJAX来实现的话 想过应该会更好。
xsm545 2009-03-15
  • 打赏
  • 举报
回复
设置属性 AutoPostBack="True"
insus 2009-03-15
  • 打赏
  • 举报
回复
dengyigeqingtian 2009-03-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyq11 的回复:]
还有通过ajax无刷新绑定数据
http://www.cnblogs.com/linpengfeixgu/articles/1215160.html
[/Quote]
呵呵,我就是想知道AJAX这方面的,谢谢,我去看看能看懂不,- -呵
wuyq11 2009-03-15
  • 打赏
  • 举报
回复
还有通过ajax无刷新绑定数据
http://www.cnblogs.com/linpengfeixgu/articles/1215160.html
mogui_ 2009-03-15
  • 打赏
  • 举报
回复
那写脚本吧.也可以缓存在服务器的DataSet中.但都不如上来的简单.
dengyigeqingtian 2009-03-15
  • 打赏
  • 举报
回复
恩恩,是的,不过这都是选一次就要连一次数据库的,是不是只有这种方法了呢?
mogui_ 2009-03-15
  • 打赏
  • 举报
回复
当第一个下拉框的选中项改变时,第二个也会变.
mogui_ 2009-03-15
  • 打赏
  • 举报
回复

<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2"
DataTextField="CustomerID" DataValueField="CustomerID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]"></asp:SqlDataSource>
<br />
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource1"
DataTextField="OrderID" DataValueField="OrderID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand="SELECT [OrderID], [CustomerID], [OrderDate] FROM [Orders] WHERE ([CustomerID] = @CustomerID)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="CustomerID" PropertyName="SelectedValue"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
wuyq11 2009-03-15
  • 打赏
  • 举报
回复
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlLB" runat="server" Width="15%" AutoPostBack="True" OnSelectedIndexChanged="ddlLB_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlChild" runat="server" Width="20%">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
protected void ddlLB_SelectedIndexChanged(object sender, EventArgs e)
{
if(this.ddlLB.SelectedValue!=null)
{
//绑定部门
}
}
dengyigeqingtian 2009-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 walkghost 的回复:]
用dropdownlist,两级联动。
把第一个用机构表绑定。在这个dpl的selectchange事件里从数据库中查询部门表,然后绑定到部门的dpl里。
这样可以吧?数据绑定的代码不用写给你了吧?
[/Quote]
谢谢~
你说的是OnSelectedIndexChanged事件吗?我原来是用这个事件,但它压根没跳进去,不知道哪出错了。不过有没有别的方法,这种方法选一次就要查一次连一次数据库.....有没有更好的方法呢?
walkghost 2009-03-15
  • 打赏
  • 举报
回复
用dropdownlist,两级联动。
把第一个用机构表绑定。在这个dpl的selectchange事件里从数据库中查询部门表,然后绑定到部门的dpl里。
这样可以吧?数据绑定的代码不用写给你了吧?

62,046

社区成员

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

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

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

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