Link to home
Start Free TrialLog in
Avatar of Ken H.
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+WhereSelectEnumerableIterator'2[System.String, 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.

        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()

Open in new window

Avatar of Nasir Razzaq
Nasir Razzaq
Flag of United Kingdom of Great Britain and Northern Ireland image

Change

        drpDatFiles.DataTextField = Table1.Columns(1).ToString
        drpDatFiles.DataValueField = Table1.Columns(0).ToString

to

        drpDatFiles.DataTextField = "Name"
        drpDatFiles.DataValueField = "Files"
Avatar of Ken H.
Ken H.

ASKER

I made that change and the behavior is still the same.
Move

drpDatFiles.DataSource = Table1

to after the above two lines
Avatar of Ken H.

ASKER

Still doesn't change the drop down box output.
ASKER CERTIFIED SOLUTION
Avatar of Nasir Razzaq
Nasir Razzaq
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Ken H.

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.
Avatar of Ken H.

ASKER

That did the trick. Thank you!
Glad to help :-)