загрузить один выпадающий на выбор другого в asp.net MVC - PullRequest
0 голосов
/ 21 января 2011

как я могу загрузить второй выпадающий список при выборе первого и третьего на секунду.в asp.net mvc 2

1 Ответ

0 голосов
/ 21 января 2011

У меня есть выпадающий триггер ajax-пост, который отправляет выбранный идентификатор, выбранный в контроллер, а затем возвращает частичное представление, которое перезаписывает html для div-элемента div.

View;это устанавливает ActionUrl, вам также понадобится заполнитель div (в моем случае это называется отделы) для раскрывающегося списка:

    <script type="text/javascript">
        var ActionUrl = '<%= Url.Action("RenderDepartments", "ControllerName") %>';
    </script>
    <script src="<%: ResolveUrl("~/Scripts/Custom/DepartmentFilter.js")%>" type="text/javascript"></script>
    <%: Html.DropDownListFor(model => model.OfficeId, Model.ListItems, "-- Please Select --", new { onchange = "GetDepartments()" })%>
    // ^^ ON CHANGE IS IMPORTANT  ^^
    <div id="departments"></div>

JQuery;

     function GetDepartments() {
            $.ajax(
            {
                type: "POST",
                url: ActionUrl,
                data: { officeId: $("#OfficeId").val() },
                success: function (data) {
                        $("#departments").html(data);
                }, error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert('XMLHttpRequest:' + XMLHttpRequest.responseText);
                    alert('textStatus:' + textStatus);
                    //alert('errorThrown:' + errorThrown);
                }

            });
     }

Controller Action;

        public ActionResult RenderDepartments(int? officeId)
    {
        if (officeId.HasValue)
        {
            var departments = new SelectList(ents.GetDepartments(officeId), "departmentID", "Name");
            var model = new DropdownListViewModel(departments);

            return PartialView("DepartmentDropdown", model);
        }
        return null;
    }

Это допустимо, потому что пользователь может отправить "- пожалуйста, выберите -", который в этом случае вернет ноль и удалит выпадающий список отделов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...