2017-04-12 132 views
0

我有三个下拉菜单;第二个(会员)根据第一个(单元)中的内容填充,第三个(客户)应该基于第二个内容填充;但事实并非如此。为什么这个下拉不填充?

下面是在LINQPad工作查询(返回公司名称的列表):

select distinct companyname from customers C left join members M on M.MemberNo = C.MemberNo where M.MemberNo = '052' order by companyname 

...但在下面的代码不起作用:

'Populate the Members dropdown 
Dim selectedUnit As String = DropDownListUnits.Text 
Dim membersDT As DataTable 
sql = "select distinct shortname, M.memberno from members M left join memberunitproducts mup on M.MemberNo = mup.MemberNo where unit = '" + selectedUnit + "' order by shortname" 
retDS = sqlDAL.runSQLDataSet(sql) 
membersDT = retDS.Tables(0) 
DropDownListMembers.DataSource = membersDT 
DropDownListMembers.DataTextField = "shortname" 
DropDownListMembers.DataValueField = "memberno" 
DropDownListMembers.DataBind() 

'Populate the Customers dropdown 
Dim selectedMember As String = DropDownListMembers.DataValueField 
Dim customersDT As DataTable 
sql = "select distinct companyname from customers C left join members M on M.MemberNo = C.MemberNo where M.MemberNo = '" + selectedMember + "' order by companyname" 
retDS = sqlDAL.runSQLDataSet(sql) 
customersDT = retDS.Tables(0) 
DropDownListCustomers.DataSource = customersDT 
DropDownListCustomers.DataTextField = "companyname" 
DropDownListCustomers.DataValueField = "companyname" 
DropDownListCustomers.DataBind() 

第三(客户)当这个运行时,下拉菜单仍然没有填充 - 为什么?

它可能不是必要的,但在这里是第一个(“单位”)下拉代码:

'Populate the Units dropdown 
Dim unitsDT As DataTable 
sql = "Select distinct unit from masterunits where abs(active) = 1" 
retDS = sqlDAL.runSQLDataSet(sql) 
unitsDT = retDS.Tables(0) 
DropDownListUnits.DataSource = unitsDT 
DropDownListUnits.DataTextField = "unit" 
DropDownListUnits.DataValueField = "unit" 
DropDownListUnits.DataBind() 

我缺少什么或者做错了吗?

回答

0

我不得不改变这一点:

Dim selectedMember As String = DropDownListMembers.DataValueField 

...这样的:

Dim selectedMember As String = DropDownListMembers.SelectedItem.Value