我的应用程序如何工作是用户将从gridview中选择具有各种值的行。当他们选择它时,它将重定向到另一个显示所有信息的页面以进行更新。
我面临的问题是:
我有一个下拉列表,它没有显示数据库中的所有列表选项+显示前一个sql语句填充的值作为第一个选项。我该怎么做?
一个例子:
选择的gridview,类别='健康'。选择后,它会重新定向到新页面进行更新;但是,category ='Computers'是显示的第一个选项而不是'Health'
那么如何让top选项等于Health并显示下面的其余部分?
我尝试了where category =value
,但当然这会让'计算机'成为第一选择。
然后我尝试'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()
,但只显示“健康”作为选项,而不是所有类别选项。
有什么建议吗?
if [[ ! $line =~ [^$VALID] ]]; then
^^^^^^^^^
答案 0 :(得分:1)
填写组合框后,只需使用SelectedIndex
或FindString
将其FindStringExact
设置为您要查找的字符串的索引即可。它们都返回一个整数,这是所需字符串的索引。
CategoryList.SelectedIndex = CategoryList.FindStringExact("Health")
如果FindString
或FindExactString
无法找到您指定的内容,则会返回-1
答案 1 :(得分:1)
它有效,所以我在编码结束时使用以下内容(加上我已经拥有的代码来保持“按类别排序”):
CategoryList.Items.FindByText(categoryV).Selected = True
答案 2 :(得分:0)
“那么如何使顶部选项与健康状况相同并显示下面的其余部分?”
你不能,如果是订单..
1)您可以删除上面的2条记录
或
2)SelectedIndex(2)将注意力集中在健康上
3)我在一个医疗应用程序中面临类似的情况,我在我之前选择的类别(健康状况)中添加了,并从正常位置删除。
我记得Paint是正确的时刻......
Private Sub dgv1_Paint(sender As Object, e As PaintEventArgs) Handles dgv1.Paint
'.. IF categotyV
End Sub