我有数据表(dtblCostCategory),它具有以下值,我在下拉列表中使用它。我从下拉列表中选择了值后保存了一些数据。当我再次加载相同的页面时,未显示所选的值,而是在下拉列表中显示第一个值。
dsOtherDetails
CostCategory | typeId | itemCount
----------------------------------------
Softwaré | 3 | 15
dtblCostCategory
CostCategory | typeId
----------------------------
Electronics | 1
Groceries | 2
Softwaré | 3
cboCategory.DataSource = dtblCostCategory
cboCategory.DataTextField = dtblCostCategory.Columns(1).ToString
cboCategory.DataValueField = dtblCostCategory.Columns(0).ToString
cboCategory.DataBind()
Dim lstItem As New ListItem
lstItem.Text = Server.HtmlEncode(Trim(CStr(dsOthersDetails.Tables(0).Rows(0).Item("CostCategory"))))
lstItem.Value = Server.HtmlEncode(CStr(dsOthersDetails.Tables(0).Rows(0).Item("typeId")))
cboCategory.SelectedIndex = cboCategory.Items.IndexOf(lstItem)
在上面的代码中,我使用indexOf通过比较两个表中的值来获取所选索引。由于类别(Softwaré)中有重音,indexOf无法正常工作。有没有办法我可以选择索引忽略重音,以便下拉列表具有正确的选定值。
答案 0 :(得分:1)
尝试使用FindByValue()
cboCategory.SelectedIndex = cboCategory.Items.IndexOf(cboCategory.Items.FindByValue(lstItem.Value));