views:

828

answers:

2

Data binding is all about declarative code, right? So I specify what I want with attributes, and the framework takes care of the rest. Unless I'm mistaken and data binding relates to S&M, right?

So, why does the DropDownList control only provide binding fields for its data source, i.e. its list source, and not for its actual data field. i.e. how the heck to I bind the selected value my name DropDownList to the Name field in my Person record? Is this a gross oversight on Microsoft's part, or on mine?

What is the point of two way data binding if I still have to manually set and read the selected value?

+1  A: 

There is a field where you define the datasource, the datatextfield (what shows up in the list) and the datavaluefield.

Example (I have a datatable with a column "EmployeeID" and a column "EmployeeName"):

dropdownlist1.datasource = DT
dropdownlist1.datatextfield = "EmployeeName"
dropdownlist1.datavaluefield = "EmployeeID"
dropdownlist1.databind()
TheTXI
If you read my question you'd see I know about those. I wanted to know how to bind the selected value to another data source, as I asked.
ProfK
+2  A: 

You might want to do something like the code below. You can not set the "SelectedValue" declaratively, but by saying "SelectedValue=<%# [code here] %> you are effectively causing the value to be set when the control is data bound.

<asp:DropDownList
                ID="DropDownInfoSource"
                runat="server"
                DataSourceID="_employeeDataSource
                DataTextField='EmployeeName'
                DataValueField='EmployeeID'
                SelectedValue=<%# Bind("EmployeeID") %>
                />

And about your S&M comment: I hadn't drawn the connection before, but having grappled with DataBinding over the last few weeks, I'm seeing similarities :-)

Andrew Shepherd
Thanks, I was a bit quick off the mark: I just looked in Intellisense for a Value attribute, and none showed, so I asked without looking further. We need an embarrassed emoticon in comments.
ProfK