У меня есть три DropDown List Controls.each выпадающее меню содержит статические значения 1,2,3,, что мне нужно сделать, когда элемент выбран в первом выпадающем списке (при событии SelectedIndexChanged), то те же элементы должны выбирается в других двух раскрывающихся спискахВыбор списка DropDown
ответ
Вот что вы делаете.
В коде ASPX:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Text="1" Value="1" />
<asp:ListItem Text="2" Value="2" />
<asp:ListItem Text="3" Value="3" />
<asp:ListItem Text="4" Value="4" />
</asp:DropDownList>
В коде:
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
string value = ddl.SelectedValue;
SetValue(DropDownList1, value);
SetValue(DropDownList2, value);
SetValue(DropDownList3, value);
}
protected void SetValue(DropDownList ddl, string value)
{
ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByValue(value));
}
Просто набрав ddl1.SelectedValue = ddl2.SelectedValue
не будет работать, потому что DropDownList.SelectedValue
только для чтения.
Обратите внимание, что я не просто установил SelectedIndex
всех DDL-адресов для всех отправителей. Вы можете использовать в сценарии вашего примера, но если один из ваших DDL когда-либо имеет свои ListItems в другом порядке от других, код сломается. На мой взгляд, это делает его опасной практикой, но YMMV.
Кроме того, если вы решили обобщить метод SetValue (я часто добавляю его как метод расширения для элемента управления DropDownList
по всему проекту), вы должны обрабатывать случаи, когда целевое значение не найдено в DDL, предположительно путем исключения исключения. Вы также можете сделать версию SetText, используя FindByText
.
Спасибо за помощь – chamara
Установите свойство selectedvalue на 2-й и 3-й кавычки вниз до выбранного значения в первом. Установите DropDown в autopostback = "true", чтобы он возвращался обратно на сервер, и вы можете установить его соответствующим образом.
ИЛИ, используйте клиентский JavaScript для изменения свойства selectedindex в других элементах выбора, когда событие клиента изменения запускается для первого.
Все, что вам нужно сделать, это установить SelectedIndex
из ваших выпадающего списка, как это:
protected void DropDownList1SelectedIndexChanged(Object sender, EventArgs e)
{
dropDownList2.SelectedIndex = dropDownList1.SelectedIndex;
dropDownList3.SelectedIndex = dropDownList1.SelectedIndex;
}
Забытые упоминания ... значения не в том же порядке во всех dropdowns.so, это не работает ... – chamara
Попробуйте следующее:
Markup:
<asp:DropDownList ID="dd1" OnSelectedIndexChanged="dd1_SelectedIndexChanged" AutoPostBack="true" runat="server" />
<asp:DropDownList ID="dd2" runat="server" />
<asp:DropDownList ID="dd3" runat="server" />
Code-за:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
BindData();
}
protected void dd1_SelectedIndexChanged(object sender, EventArgs e)
{
string selected = dd1.SelectedValue;
dd1.SelectedValue = dd2.SelectedValue = dd3.SelectedValue = selected;
BindData();
}
private void BindData()
{
int[] values = { 1, 2, 3, 4 };
dd1.DataSource = dd2.DataSource = dd3.DataSource = values;
dd1.DataBind();
dd2.DataBind();
dd3.DataBind();
}
Я верю, что 'dd1.SelectedValue = dd2.SelectedValue' вызовет ошибку, так как это свойство только для чтения , –
@ Юстин: Нет, это не так. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selectedvalue.aspx. Я тестировал свой код. – volpav
Похоже, ты прав. Я мог бы поклясться, что это вызвало у меня проблемы в недавнем проекте, но, возможно, я думаю о чем-то другом. +1 к вашей ссылке, чтобы показать мне ошибку моих путей. –
- 1. XPages: выбор DropDown документов
- 2. jQuery dropdown выбор рендеринга
- 3. Dropdown выбор подменю
- 4. Помните Dropdown Выбор
- 5. Проблема Выбор значения БД из списка DropDown при создании страницы
- 6. Выбор DateTimePicker только с DropDown
- 7. jQuery, Заполнение списка DropDown
- 8. Выбор варианта Dropdown из переменной в PHP
- 9. Dropdown Выбор вызывать автоматический прокрутки по горизонтали
- 10. Ajax Dropdown Выбор для изменения TextArea Содержание
- 11. Bootstrap Dropdown выбор устанавливается выбор на * все * выпадающее меню
- 12. Remeber Dropdown Выбор выбора после поиска Laravel
- 13. Первый выбор DropDown не запускает вторую функцию DropDown
- 14. Show/Hide Dropdown Option Положитесь на другой Dropdown Выбор
- 15. Как отменить выбор выпадающего списка?
- 16. Выбор выпадающего списка в селене
- 17. Использование выбора списка DropDown в инструкции If
- 18. Выпуск списка DropDown в yii
- 19. Начальное значение каскадного списка DropDown
- 20. Kendo cascading dropdown loading dropdown на основе другого выпадающего списка
- 21. Угловая ui-сетка - DropDown Выбор показывает Id
- 22. Выбор ВСЕХ значений в PHP Dropdown
- 23. Довести Выбор Dropdown в авансовые всех DIVs
- 24. Autocomplete Dropdown - слишком много данных, выбор времени
- 25. Выбор нескольких элементов semantic-ui dropdown
- 26. JQuery Подтверждение DropDown Выбор (отмена работы)
- 27. Первый Dropdown выбор второго и третьего выпадающий
- 28. выбор DropDown Box показывает текстовые поля в C#
- 29. Множественный выбор из раскрывающегося списка
- 30. Надежный выбор элемента в ComboBox с помощью стиля DropDown
хорошо! Так что же не сработало? – Shoban