2017-04-12 127 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