我按以下方式设置了一个组合框:
<form onsubmit="return validatePass();">
<p>Please enter your password and press Enter:</p>
<input id='password' type='password' />
<p><a href="#" onclick="return false;" class="disabled-link">Register now</a></p>
</form>
我想使用&#34; employee&#34;在组合框中设置所选项目。显示成员。我需要为函数的下一部分引用ValueMember,因此我不能只显示正确的文本,我需要选择正确的项目。
我尝试了各种方法,包括:
With Me.cboEmps
.DataSource = myDSemp.Tables(0) 'results of an SQL statement
.DisplayMember = "employee" 'employee name
.ValueMember = "employee_id"
End With
但索引总是以-1返回。
index = cboEmps.Items.IndexOf(name)
cboEmps.SelectedIndex = index
当我触发事件时,最终会出现一个组合框,显示一个接一个地添加的名称。
我想尝试避免做一些及时的循环,它遍历组合框中的每个项目,比较显示成员等。
亲切的问候
马特
答案 0 :(得分:0)
您使用原始数据源搜索您的员工姓名,一旦获得该员工姓名,就可以轻松获取其员工ID并设置SelectedValue属性
Dim name = "EmpName"
Dim rows = myDSemp.Tables(0).Select("employee='" & name & "'")
If rows.Count > 0 Then
cboEmps.SelectedValue = Convert.ToInt32(rows(0)("employee_id"))
End If
答案 1 :(得分:0)
如果您使用
cboEmps.Text = name
它应该(假设DropDownStyle = DropDownList)正确设置SelectedItem
。
您也可以通过访问组合框数据源来做类似史蒂夫的回答:
Dim tmpCboEmps As DataTable = cboEmps.DataSource
' find employee by name from clicked item
' set cboEmps.SelectedItem = employee