2013-02-22 3 views
0

Я работаю с MVC 4.0, и мне нужна страница с тремя ниспадающими списками вниз и таблицей.Как заполнить выпадающий список действием из другого выпадающего списка?

Когда элемент выбран из DDL1 (например, пользователи), тогда заполняется DDL2 (например, учетные записи). Когда элемент выбран из DDL2 (учетные записи), тогда заполняется DDL3 (например, карточки). Когда элемент выбран из DDL3, тогда таблица должна отображать список объектов, например. Сделки (с суммой и т. Д.).

Итак, я создал TransactionManagementController и создал действие индекса, которое загружает пользователей и отображает их на начальном этапе.

public ActionResult Index() 
     { 
      var vm = new VmTransactionManagement 
       { 
        Users = db.Users.ToList() 
       }; 

      return View(vm); 
     } 

<th>User:</th> 
     <td>@Html.DropDownListFor(m => m.SelectedUser, 
            Model.UsersSelectList, 
            "-- Select One --")</td> 

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

Итак, теперь, как бы я закодировал так, чтобы при выборе DDL1 (userId передается), тогда DDL2 заселяется?

Должен ли я создавать новое действие/просмотр и называть его Ajax?

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

ответ

0

Когда мне нужно каскадировать выпадающие списки, я буду использовать jQuery $.load и отобразить PartialView. Пример использования метода: https://stackoverflow.com/a/1721623/1015010

+0

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

+0

Да, это именно оно. Вы можете передавать данные с помощью '$ .load' в контроллер (например, идентификатор пользователя или что-то еще) и возвращать правильный выбор на основе этого выбора в частичном представлении. – da7rutrak

Смежные вопросы