使用数据表中的数据在gridview中设置下拉列表的选定值时出现问题。
我有一个SQL查询,用于选择必须从下拉列表中显示的数据。下拉列表已填充。因此,查询结果必须显示在下拉列表中。
我尝试了下面的代码,但它在每一行都返回相同的值。
这是从数据库中选择数据的代码:
Public Function POPULATE_DROPDOWNLIST(ByVal d_Date As Date, ByVal d_Hour As Integer)
Using con As Odbc.OdbcConnection = New Odbc.OdbcConnection(My.Settings.DB_CONN)
Using cmd As Odbc.OdbcCommand = _
New Odbc.OdbcCommand( _
"SELECT * FROM TBLDATA WHERE D_DATE='" & d_Date & _
"' AND DELIVERY_HOUR='" & d_Hour & "'",
con)
con.Open()
Using dr As Odbc.OdbcDataReader = cmd.ExecuteReader
Dim d_List As New List(Of String)
While dr.Read
d_List.Add(dr("CRITERIA").ToString())
End While
con.Close()
Return d_List
End Using
End Using
End Using
End Function
虽然这是我的代码,用于填充上面函数返回的数据的gridview下拉列表。
Dim dList As New List(Of String)
dList = POPULATE_DROPDOWNLIST(txtdate.Text, DropDownList1.Text)
For Each value In dList
For i = 0 To GridView1.Rows.Count - 1
Dim ddl As DropDownList = _
DirectCast(GridView1.Rows(i).Cells(6).FindControl("dropdowncriteria"), _
DropDownList)
ddl.SelectedValue = value
Next
Next
答案 0 :(得分:0)
试试这个:
Public Function POPULATE_DROPDOWNLIST(ByVal d_Date As Date, ByVal d_Hour As Integer) As DataTable
Dim dataTable As New DataTable
Using con As New Odbc.OdbcConnection("CS")
Using cmd As New Odbc.OdbcCommand
cmd.CommandText = "QUERY"
con.Open()
Dim dataAdapter As New Odbc.OdbcDataAdapter(cmd.CommandText, con)
dataAdapter.Fill(dataTable)
Return dataTable
End Using
End Using
End Function
Public Sub BIND_DDL()
Dim previousDDLvalue As String = ddl.SelectedValue
Dim dt As New DataTable
dt = POPULATE_DROPDOWNLIST(Now, 24)
With ddl
.Items.Clear()
.DataSource = dt
.DataValueField = "ID"
.DataTextField = "DESCRIPTION"
.DataBind()
.SelectedValue = previousDDLvalue
End With
End Sub