Vb.net 在下拉列表中选择第一个选项
我的应用程序的工作原理是,用户将从gridview中选择具有各种值的行。当他们选择它时,它将重新指向另一个页面,该页面显示更新它的所有信息 我面临的问题是: 我有一个下拉列表,它不显示数据库中的所有列表选项,而是显示由上一条sql语句填充的值作为第一个选项。我该怎么做 例如: 所选的gridview,类别='Health'。一旦选中,它将重新定向到新页面进行更新;但是,显示的第一个选项是category='Computers',而不是'Health'Vb.net 在下拉列表中选择第一个选项,vb.net,drop-down-menu,oracle10g,oledb,Vb.net,Drop Down Menu,Oracle10g,Oledb,我的应用程序的工作原理是,用户将从gridview中选择具有各种值的行。当他们选择它时,它将重新指向另一个页面,该页面显示更新它的所有信息 我面临的问题是: 我有一个下拉列表,它不显示数据库中的所有列表选项,而是显示由上一条sql语句填充的值作为第一个选项。我该怎么做 例如: 所选的gridview,类别='Health'。一旦选中,它将重新定向到新页面进行更新;但是,显示的第一个选项是category='Computers',而不是'Health' 那么,如何使顶部选项的运行状况相等,并在下面
那么,如何使顶部选项的运行状况相等,并在下面显示其余选项呢 我试过按类别排序,但这当然使“计算机”成为第一选择 然后我尝试了
其中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
设置为要查找的字符串的索引。它们都返回一个整数,该整数是所需字符串的索引
CategoryList.SelectedIndex = CategoryList.FindStringExact("Health")
如果FindString
或FindExactString
找不到您指定的内容,它将返回-1“那么如何使顶部选项的运行状况相等,并显示下面的其余选项?”如果是按……订货,你就不能
1) 您可以删除上面的2条记录
或
2) 选择索引(2)以设置健康关注点。
3) 我在一个医疗应用程序中遇到了类似的情况,我在之前选择的类别(健康)的顶部添加了内容,并从他的正常位置删除了内容。
我记得画画是正确的时机。
Private Sub dgv1_Paint(sender As Object, e As PaintEventArgs) Handles dgv1.Paint
'.. IF categotyV
End Sub
它可以工作,因此我在编码结束时使用以下代码(加上我已经必须保留的代码“按类别排序”):
CategoryList.Items.FindByText(categoryV).Selected = True
此代码极易受到sql注入攻击。这简直是乞求被黑客攻击。查看参数化查询。我的代码根据显示位置受到限制。该网站是受限制的,这是应用程序链接的来源。这是无关的。很多黑客都是在作业中进行的,或者是网络中受损机器的结果。使用字符串浓缩将数据放入查询是业余的。当我使用FindStringExact时,它会标记一个错误,表示它不是System.Web.UI.WebControl.DropDownList的成员。。。由于
FindStringExact(“”
中显示的内容基于上一页的sql语句,因此我可以执行以下操作CategoryList.SelectedIndex=categoryV
因为所选类别是动态的?我担心我不能,因为有一个int/string转换问题。我是在SelectedIndexOh、Web而不是WinForms的帮助下解决的。我不从事Web开发,但是您可以设置CategoryList.SelectedValue=“Health”,或者如果您知道索引2将始终是“Health”,您可以设置SelectedIndex=2,但这不是一个好的设计。或者,您可以使用For循环遍历CategoryList.Items,如果某个项等于“Health”,则保存该索引并将其设置为SelectedIndex。Health并不总是2,但索引2始终是所选类别所在的位置。然而,我在下面的回答中选择的选项起了作用。不过我会研究你的建议。谢谢如果我做了CategoryList.SelectedIndex(categoryV),它会说属性访问必须分配给属性或使用它的值。那么我如何提取categoryV的字符串值呢?您是否输入了Keith解决方案CategoryList.SelectedIndex=CategoryList.FindStringExact(“健康”)取决于您想要实现的目标。。甚至纳鲁的回答都是coolKeiths不是我想要的,因为它并不总是健康。