在下拉列表中选择第一个选项
Choose First Option in DropDown list
我的应用程序的工作原理是,用户将 select 具有各种值的 gridview 中的一行。当他们 select 它时,它将重定向到另一个显示所有信息的页面以更新它。
我面临的问题是:
我有一个下拉列表,它不显示数据库中的所有列表选项 + 显示由前一个 sql 语句填充的值作为第一个选项。我该怎么做?
一个例子:
选择的gridview,类别='Health'。一旦 selected,它会重定向到新页面进行更新;但是,category = 'Computers' 是显示的第一个选项,而不是 'Health'
那么如何使顶部选项等于健康并在下面显示其余选项?
我试过 order by category
但当然 'Computer' 是第一个选项。
然后我尝试了 where category =value
,但它只显示 'Health' 作为一个选项,而不是所有类别选项。
有什么建议吗?
'index from previous sql statement (Index/Item 2 is category)
Dim categoryV = DsAds.Tables(0).Rows(0).Item(2)
Dim ClassStrCat As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category = '" & categoryV & "'", conn)
OracleDataAdapterAds.SelectCommand = ClassStrCat
CategoryList.DataSource = DsAds
CategoryList.DataMember = "t_class"
CategoryList.DataBind()
Dim ClassStrCat2 As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category ", conn)
Dim OracleDataAdapterAds2 As OleDbDataAdapter = New OleDbDataAdapter
OracleDataAdapterAds2.SelectCommand = ClassStrCat2
Dim DsAds2 As DataSet = New DataSet
DsAds2.Clear()
OracleDataAdapterAds2.Fill(DsAds2, "t_class")
CategoryList.DataSource = DsAds2
CategoryList.DataMember = "t_class"
CategoryList.DataBind()
填充组合框后,只需使用 FindString
或 FindStringExact
将其 SelectedIndex
设置为您要查找的字符串的索引。它们都是return一个整数,也就是所需字符串的索引。
CategoryList.SelectedIndex = CategoryList.FindStringExact("Health")
如果FindString
或FindExactString
找不到您指定的内容,它将return -1
"So How do I make the top option equal Health and display the rest below?"
如果按 ..
订购,则不能
1) 你可以去掉上面的2条记录
或
2) SelectedIndex(2) 设置关注健康。
3)我在一个医疗app遇到过类似的情况,我在上面添加了我之前选择的类别(健康),并从他的正常位置删除了。
我记得 Paint 是正确的时机..
Private Sub dgv1_Paint(sender As Object, e As PaintEventArgs) Handles dgv1.Paint
'.. IF categotyV
End Sub
它有效,所以我在编码结束时使用以下代码(加上我已经必须保留 "order by category" 的代码):
CategoryList.Items.FindByText(categoryV).Selected = True
我的应用程序的工作原理是,用户将 select 具有各种值的 gridview 中的一行。当他们 select 它时,它将重定向到另一个显示所有信息的页面以更新它。
我面临的问题是:
我有一个下拉列表,它不显示数据库中的所有列表选项 + 显示由前一个 sql 语句填充的值作为第一个选项。我该怎么做?
一个例子:
选择的gridview,类别='Health'。一旦 selected,它会重定向到新页面进行更新;但是,category = 'Computers' 是显示的第一个选项,而不是 'Health'
那么如何使顶部选项等于健康并在下面显示其余选项?
我试过 order by category
但当然 'Computer' 是第一个选项。
然后我尝试了 where category =value
,但它只显示 'Health' 作为一个选项,而不是所有类别选项。
有什么建议吗?
'index from previous sql statement (Index/Item 2 is category)
Dim categoryV = DsAds.Tables(0).Rows(0).Item(2)
Dim ClassStrCat As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category = '" & categoryV & "'", conn)
OracleDataAdapterAds.SelectCommand = ClassStrCat
CategoryList.DataSource = DsAds
CategoryList.DataMember = "t_class"
CategoryList.DataBind()
Dim ClassStrCat2 As OleDbCommand = New OleDbCommand("SELECT * FROM t_cat order by category ", conn)
Dim OracleDataAdapterAds2 As OleDbDataAdapter = New OleDbDataAdapter
OracleDataAdapterAds2.SelectCommand = ClassStrCat2
Dim DsAds2 As DataSet = New DataSet
DsAds2.Clear()
OracleDataAdapterAds2.Fill(DsAds2, "t_class")
CategoryList.DataSource = DsAds2
CategoryList.DataMember = "t_class"
CategoryList.DataBind()
填充组合框后,只需使用 FindString
或 FindStringExact
将其 SelectedIndex
设置为您要查找的字符串的索引。它们都是return一个整数,也就是所需字符串的索引。
CategoryList.SelectedIndex = CategoryList.FindStringExact("Health")
如果FindString
或FindExactString
找不到您指定的内容,它将return -1
"So How do I make the top option equal Health and display the rest below?"
如果按 ..
订购,则不能
1) 你可以去掉上面的2条记录
或
2) SelectedIndex(2) 设置关注健康。
3)我在一个医疗app遇到过类似的情况,我在上面添加了我之前选择的类别(健康),并从他的正常位置删除了。
我记得 Paint 是正确的时机..
Private Sub dgv1_Paint(sender As Object, e As PaintEventArgs) Handles dgv1.Paint
'.. IF categotyV
End Sub
它有效,所以我在编码结束时使用以下代码(加上我已经必须保留 "order by category" 的代码):
CategoryList.Items.FindByText(categoryV).Selected = True