Каскадный выпадающий список в ASP.Net MVC2 - PullRequest
2 голосов
/ 15 декабря 2010

Я использую mvc2 с c # ASP.Net.Я пытаюсь реализовать каскадный раскрывающийся список, в котором мой первый раскрывающийся список называется группа, а второй - разделение.поэтому при выборе группы ее соответствующие подразделения должны отображаться в моем втором раскрывающемся списке.

вот код, который я пытался реализовать

, это моя часть просмотра.

<%= Html.DropDownList("ddlGroup", IEnumerable<SelectListItem>)ViewData["ddlGroup"])%>
<select id="ddlDivision" name="Division"></select>

и часть скрипта

$(document).ready(function () {
  $("#ddlGroup").change(function () {   // group drop down selected index change       
    LoadDivision($("#ddlGroup").val());          
  }).change(); // For 1st data in on load
});

function LoadDivision (Group) {     
  var url = "../Training/GetJsonDivision";
  $.getJSON(url, { Group: Group }, function (data) {        
    $.each(data, function (index, optionData) {                 
      $("#ddlDivision").append("<option value'" + optionData.Division + "'>" + optionData.Division + "</option">);
    });
  });
}

, а часть моего контроллера

public ActionResult GetJsonDivision(string Group)
{        
    SelectList division = new SelectList(GetDivision(Group), "Division", "Division");
    return this.Json(division, JsonRequestBehavior.AllowGet);
}

здесь мой GetJsonDivision возвращает набор делений для данной группы.в моем jquery, при вызове функции getJSON, он идет к контроллеру и метод выполняется, но после каждого оператора я не могу связать данные с выпадающим списком.

может кто-нибудь помочь мне в этом.Мне неясно, что это за опция optionData, которую мы передаем в параметре функции обратного вызова, и как она сопоставляется с возвращаемыми значениями.

спасибо и с уважением к Малати.

1 Ответ

0 голосов
/ 18 марта 2011

Не думаю, что вы действительно добавляете новый элемент, когда вставляете этот текст прямо вверх. Например, попробуйте что-то вроде этого:

$(data).each(function()
{
     var option = $('<option />');
     option.val(this.Division).text(this.Division);
     $('#ddlDivision').append(option);
});

Попробуйте и посмотрите, работает ли это.

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