C # Как получить доступ к выпадающему списку в виде списка?

2

У меня есть список. В моем списке у меня есть dropdownbox, который я хочу заполнить на моей странице кода. Только дело в том, что я не знаю, как получить доступ к этому webcontrol. Не работает следующее:

DropDownList ddl = (DropDownList)lvUserOverview.Controls[0];

Я знаю, что индекс равен 0, потому что раскрывающийся список является единственным элементом управления списком (также когда я пытаюсь индексировать 1, я получаю исключение индекса за пределами диапазона).

Может ли кто-нибудь сказать мне, как я могу получить доступ к выпадающему списку? В моей странице я хочу добавить listitems.

Код ASPX:

<asp:DropDownList ID="ddlRole" onload="ddlRole_Load" runat="server">
</asp:DropDownList>

Codebehind:

protected void ddlRole_Load(object sender, EventArgs e)
{
  DropDownList ddl = (DropDownList)lvUserOverview.FindControl("ddlRole");
  if (ddl != null)
  {
      foreach (Role role in roles)
          ddl.Items.Add(new ListItem(role.Description, role.Id.ToString()));
  }
}
  • 0
    Можете ли вы показать свой полный код страницы ASPX ... или вы можете отправить мне по электронной почте ... Я думаю, что на странице ASPX есть что-то, что создает проблему ??
Теги:
listview
dropdownbox

4 ответа

1
Лучший ответ

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

DropDownList ddlRole = sender as DropDownList;
  • 0
    Thnx. Можно ли отправить дополнительный параметр? Может быть, так, что eventArgs получает дополнительное свойство? что-то вроде этого: <asp: dropdownlist ... onload = "ddl_load (id)"> и в коде позади события load: e.id Надеюсь, вы понимаете, о чем я.
2

Если это отображается в ListView, тогда существует вероятность того, что будут созданы несколько DropDownLists, каждый получит уникальный идентификатор, и вы не сможете использовать подход Мэтью.

Возможно, вы захотите использовать событие ItemDataBound для доступа к e.Item.FindControl( "NameOfDropDownList" ), который позволит вам выполнять итерацию при каждом раскрывающемся меню.

Если вы только создаете... почему он находится в ListView?

  • 0
    Смотрите мой стартовый пост
0

Попробуйте следующее:

DropDownList ddl = (DropDownList)lvUserOverview.FindControl("NameOfDropDownList");
  • 0
    Идентификатор моего выпадающего списка установлен в ddlRole. Когда я использую DropDownList ddl = (DropDownList) lvUserOverview.FindControl ("ddlRole"); это не работает
  • 0
    Разместите свой ASPX-код для ListView, может быть, есть проблема с ним.
Показать ещё 1 комментарий
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню