прикрепление списка опций к выделенному

0

У меня эти очень большие выпадающие списки (1500). Я должен использовать много этих больших выпадающих списков на одной странице (1500 элементов в списке, 4 списка на объект, 150 объектов на страницу). Все эти списки одинаковы для каждого объекта.

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

Списки создаются в бритве:

var list = ViewData["List"] as IEnumerable<SelectListItem>;
IEnumerable<SelectListItem> selectEnumerable = null;

if(list != null)
{
    selectEnumerable = list.Select(x => new SelectListItem
    {
        Text = x.Text,
        Value = x.Value.ToString()
    }).OrderBy(x => Convert.ToInt32(x.Value));   
}

@Html.DropDownList("List", selectEnumerable)

Как я могу сделать что-то подобное?

  • 0
    Вы хотите сказать, что когда кто-то открывает раскрывающийся список, он заполняет его, но если кто-то открывает один из остальных, он очищает предыдущий список и заполняет выбранный? Я считаю, что было бы немного неуклюже для пользователя, если у него есть более старая машина.
  • 0
    @ Малик да. Я мог бы добавить, что выпадающие списки являются списком jquery. Если это слишком неуклюже, есть ли другие предложения? Bc, как это, эта страница очень медленная.
Показать ещё 3 комментария
Теги:
razor
asp.net-mvc-3

1 ответ

0

Если вы хотите сделать это на стороне клиента, тогда один из способов сделать это - использовать jquery clone()

Итак, что бы вы сделали, загрузите первую серверную сторону сервера select как в вашем вопросе. Затем создайте 3 других списка select но оставьте их пустыми и присвойте им атрибут class который будет таким же, например, "my-list-class". Наконец, в вашем файле сценария вы можете создать функцию, которая запускается один раз при запуске.

JS:

  function LoadSelectLists()
  {
    var list = $("#sel1 > option").clone();
    $('.my-list-class').append(list);
  }

Html:

<select id="sel1">
  <option value="a">opt1</option>
  <option value="b">opt2</option>
  <option value="c">opt3</option>
</select>
<select id="sel2" class="my-list-class"></select>
<select id="sel3" class="my-list-class"></select>
<select id="sel4" class="my-list-class"></select>

скрипка: http://jsfiddle.net/2WDcz/

Ещё вопросы

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