如果其中有一些重音字符,则IndexOf()不起作用

时间:2017-07-11 08:53:08

标签: asp.net .net vb.net combobox dropdown

我有数据表(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无法正常工作。有没有办法我可以选择索引忽略重音,以便下拉列表具有正确的选定值。

1 个答案:

答案 0 :(得分:1)

尝试使用FindByValue()

cboCategory.SelectedIndex = cboCategory.Items.IndexOf(cboCategory.Items.FindByValue(lstItem.Value));