Ken H.
asked on
[LINQ] Problem binding data to drop down box
The DataValueField contains the appropriate data, but the DataTextField shows up as
System.Linq.Enumerable+Whe reSelectEn umerableIt erator'2[S ystem.Stri ng, System.String]
Full code for the sub is below. Basically i need the full path to each file but in the drop down box i only want to display the file name, hence the linq filter.
System.Linq.Enumerable+Whe
Full code for the sub is below. Basically i need the full path to each file but in the drop down box i only want to display the file name, hence the linq filter.
Dim Table1 As DataTable
Table1 = New DataTable("DAT List")
Dim datFiles As DataColumn = New DataColumn("Files")
datFiles.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(datFiles)
Dim datName As DataColumn = New DataColumn("Name")
datFiles.DataType = System.Type.GetType("System.String")
Table1.Columns.Add(datName)
Dim datPath As String = txtPath.Text & "\SnapDriveInfo\"
Dim datFile As String() = IO.Directory.GetFiles(txtPath.Text & "\SnapDriveInfo\")
Dim file = From p In datFile Where p.Contains(".dat") Select p
'Dim logName = From q In file Where q.Contains(".dat") Select q.Replace(datPath, String.Empty).Trim
Dim logName = From q In file Where q.Contains(".dat") Select q.Replace(datPath, String.Empty).Trim
For Each log In file
txtOut.Text &= log
txtOut.Text &= vbCrLf
Dim Row1 As DataRow
Try
Row1 = Table1.NewRow()
Row1.Item(datFiles) = log
Row1.Item(datName) = logName
Table1.Rows.Add(Row1)
Catch ex As Exception
End Try
Next
drpDatFiles.DataSource = Table1
drpDatFiles.DataTextField = Table1.Columns(1).ToString
drpDatFiles.DataValueField = Table1.Columns(0).ToString
drpDatFiles.DataBind()
ASKER
I made that change and the behavior is still the same.
Move
drpDatFiles.DataSource = Table1
to after the above two lines
drpDatFiles.DataSource = Table1
to after the above two lines
ASKER
Still doesn't change the drop down box output.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
here is something interesting. if i use table1.columns(0).tostring for the text field i get the full path to the file displayed properly. but table1.columns(1).tostring doesnt and column 1 contains the text i want displayed.
ASKER
That did the trick. Thank you!
Glad to help :-)
drpDatFiles.DataTextField = Table1.Columns(1).ToString
drpDatFiles.DataValueField
to
drpDatFiles.DataTextField = "Name"
drpDatFiles.DataValueField