Динамический выпадающий список в повторителе, ASP.NET - PullRequest
3 голосов
/ 03 июля 2011

В основном, коды, которые у меня есть, отсюда: http://ranafaisal.wordpress.com/2009/02/17/dynamically-adding-removing-textboxes-in-aspnet-repeater/

Однако дело в том, что мне понадобится выпадающий список с текстовыми полями. Цель выпадающего списка - позволить пользователям выбирать страну своего происхождения. У них есть возможность добавить или удалить сведения, введенные ранее.

Это мое сообщение об ошибке:

«ddlName» имеет значение SelectedValue, которое недействительным, потому что он не существует в список предметов. Имя параметра: значение

Это мой код выпадающего списка внутри ретранслятора в Default.aspx

<asp:DropDownList ID="ddlName" runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "ddl") %>'></asp:DropDownList>

Коды, приведенные ниже, в точности совпадают с приведенной мною ссылкой.

  • Примечания: База данных не задействована.

Пожалуйста, не говорите мне, чтобы гуглить или что-то еще, потому что я гуглил в течение последних нескольких часов, но безрезультатно. Я определенно достаточно погуглил и попробовал решения, предоставленные другими, прежде чем публиковать здесь. Я почти сошел с ума

Из-за проблемы с раскрывающимся списком я даже не могу запустить приложение.

1 Ответ

2 голосов
/ 03 июля 2011

Проблема в том, что вам нужно заполнить DropDownList возможные опции, прежде чем вы установите выбранное значение, которое вы пытаетесь сделать в соответствии с Eval. Я бы переключил его на OnDataBinding из DropDownList и делал там, что вам нужно.

Пример:

<asp:DropDownList ID="ddlName" runat="server" OnDataBinding="ddlName_DataBinding" />

protected void ddlName_DataBinding(object sender, System.EventArgs e)
{
    DropDownList ddl = (DropDownList)(sender);

    // Fill your ddl here (eg. ddl.Items.Add("abc", xyz");
    // Make sure the value you are going to set the selected item to has been added

    // Now set the selected value since it will now exist.
    ddl.SelectedValue = Eval("ddl").ToString(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...