2010-12-15 9 views
2

Ich benutze mvc2 mit C# ASP.Net. Ich versuche kaskadierte Dropdown-Liste zu implementieren, wobei meine erste Dropdown-Liste Gruppe genannt wird und meine zweite ist Division. so auf die Auswahl der Gruppe ihre jeweiligen Abteilungen sind in meiner zweiten Drop-Down-Liste angezeigt werden ..Cascading Dropdown-Liste in ASP.NET MVC2

hier ist der Code, i

dies ist meiner Ansicht nach Teil umzusetzen versuchte.

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

und das Skript Teil ist

$(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">); 
    }); 
    }); 
} 

und mein Controller Teil ist

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

hier meine GetJsonDivision liefert die Menge der Teilung für die gegebene Gruppe. in meiner jquery, auf getJSON Funktionsaufruf, es geht an den Controller und die Methode wird ausgeführt, aber nach jeder Anweisung bin ich nicht in der Lage, die Daten an die Dropdown-Liste zu binden.

kann mir jemand dabei helfen. Ich weiß nicht genau, was diese OptionData ist, die wir im Callback-Funktionsparameter angeben und wie sie den Rückgabewerten zugeordnet wurde.

danke und Grüße Malathy.

Antwort

0

Ich glaube nicht, dass Sie wirklich ein neues Element hinzufügen, wenn Sie diesen Text direkt einfügen. Versuchen Sie beispielsweise Folgendes:

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

Versuchen Sie das und sehen Sie, ob es funktioniert.

Verwandte Themen