prestomation
prestomation

Reputation: 7440

Binding multiple fields to listbox in ASP.NET

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

Upvotes: 3

Views: 6243

Answers (2)

womp
womp

Reputation: 116977

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.

Upvotes: 7

Matthew Jones
Matthew Jones

Reputation: 26190

Unfortunately I'm not terribly familiar with LINQ, but if you just want to display the names like that you could do this in a SQL query:

SELECT LASTNAME + ', ' + FIRSTNAME AS FULLNAME, ID FROM TableName

And then set the value of the DataTextField to FULLNAME and the DataValueField to ID.

Upvotes: 1

Related Questions