Setting the Selectedindex / selectedvalue to the dropdown in the repeater does not work

I have a repeater with DropDownList. I set the data source of this list in the itembound en event specifying the selected index. When I debug the selectedindex value, but when the page is running, loading for the whole item is selected by default.

This is my code:

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { var ddl = (DropDownList)e.Item.FindControl("DataFeedItems"); ddl.DataSource = FilterDropDownData(); ddl.DataTextField = "ColumnName"; ddl.DataValueField = "ColumnName"; ddl.DataBind(); ddl.SelectedValue = "Select"; ddl.SelectedIndex = 28; } 
  protected DataTable FilterDropDownData() { var importedFeedColums = I make the table here; DataRow newRow = importedFeedColums.NewRow(); newRow[0] = "Selecteren"; importedFeedColums.Rows.Add(newRow); return importedFeedColums; } 

I Als tried to use the Databound even in the drop-down list, but that didn't work either:

  protected void DataFeedItems_DataBound(object sender, System.EventArgs e) { var ddl = (DropDownList) (sender); ddl.SelectedValue = "Selecteren"; ddl.Items[28].Selected = true; } <asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound"> <ItemTemplate> <li> <label><%# DataBinder.Eval(Container.DataItem, "ColumnName") %></label> <asp:DropDownList ID="DataFeedItems" ClientIDMode="Static" runat="server" DataSource='<%# FilterDropDownData() %>' DataTextField="ColumnName" DataValueField="ColumnName" OnDataBound="DataFeedItems_DataBound" > </asp:DropDownList> <input id="Hidden1" runat="server" clientidmode="Static" type="hidden" value='<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>' /> </li> </ItemTemplate> </asp:Repeater> 

When I submit the form, I can get the selected value and the text of each DropDownList. What am I doing wrong

+4
source share
2 answers

What returns FilterDropDownData ()?

Have you tried this?

  ddl.Items.FindByValue("Selecteren").Selected = true; 

or

  ddl.Items.FindByText("Selecteren").Selected = true; 
+1
source

This approach will fail because the drop-down menu cannot have multiple items selected. And setting "Selected = true" will do the same.

Only you can set the selected item using the SelectedIndex DropDownList property.

Example: ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue("Selecteren"));

+1
source

All Articles