DataTable dt1 = ds.Tables["Domains1"]; if ( dt1.Rows.Count > 0 ) { // DataBind the ddls: ddlR1D1.DataSource = dt1; ddlR1D1.DataTextField = "dom_desc"; ddlR1D1.DataValueField = "dom_pkey"; ddlR1D1.DataBind( ); ddlR1D2.DataSource = dt1; ddlR1D2.DataTextField = "dom_desc"; ddlR1D2.DataValueField = "dom_pkey"; ddlR1D2.DataBind( ); ddlR1D3.DataSource = dt1; ddlR1D3.DataTextField = "dom_desc"; ddlR1D3.DataValueField = "dom_pkey"; ddlR1D3.DataBind( ); } else { } // Add the always-available ddl items: ListItem li0 = new ListItem( "-- Not Selected --", "0" ); ListItem li1 = new ListItem( "None", "81" ); ddlR1D1.Items.Insert( 0, li0 ); ddlR1D1.Items.Insert( 1, li1 ); ddlR1D2.Items.Insert( 0, li0 ); ddlR1D2.Items.Insert( 1, li1 ); ddlR1D3.Items.Insert( 0, li0 ); ddlR1D3.Items.Insert( 1, li1 );Now I want to set .SelectedIndex of each ddl based on values I've pulled up from a different SQL table:
// Select the proper Item in each ddl: ddlSetSelectedIndex( ddlR1D1, dt.Rows[0]["ind_rater1_domain1"] ); ddlSetSelectedIndex( ddlR1D2, dt.Rows[0]["ind_rater1_domain2"] ); ddlSetSelectedIndex( ddlR1D3, dt.Rows[0]["ind_rater1_domain3"] ); private void ddlSetSelectedIndex( DropDownList ddl, object keyValue ) { if ( keyValue == DBNull.Value ) { ddl.SelectedIndex = 0; } else { ddl.SelectedIndex = ddl.Items.IndexOf( ddl.Items.FindByValue( keyValue.ToString( ) ) ); } }However, this fails with an unhandled exception "A DropDownList cannot have multiple items selected."
ddlR1D1.Items.Insert( 0, new ListItem( "-- Not Selected --", "0" ) ); ddlR1D1.Items.Insert( 1, new ListItem( "None", "81" ) ); ddlR1D2.Items.Insert( 0, new ListItem( "-- Not Selected --", "0" ) ); ddlR1D2.Items.Insert( 1, new ListItem( "None", "81" ) ); ddlR1D3.Items.Insert( 0, new ListItem( "-- Not Selected --", "0" ) ); ddlR1D3.Items.Insert( 1, new ListItem( "None", "81" ) );This was a PITA to debug; I hope it helps someone else some day.