C# – Binding multiple fields to listbox in ASP.NET

asp.netclinqlinq-to-sqlsql

I'm fairly new to asp.net and especially LINQ and SQL.

Say I have a table "Employees" with fields "Lastname", "Firstname", and "ID".

I want to bind this to a list box. I want the list box to display it's contents like "$LASTNAME, $FIRSTNAME" and I want the value of each item to be "ID".

It's trivial to bind either name column to the listbox and the values accordingly, but I can't figure out how to do this..

Thanks in advance

Best Answer

You could try something like this:

var datasource = from employee in employees 
                 select new
                 { 
                     Name = employee.lastName + ", " + employee.firstName, 
                     Id = employee.ID 
                 };

myListBox.DataSource = datasource;
myListBox.DataTextField = "Name";
myListBox.DataValueField = "Id";
myListBox.DataBind();

This constructs a list of anonymous types from your employee table to bind your listbox to.