2010-12-15 11 views
2

私はc#ASP.Netでmvc2を使用しています。 iamはカスケード型のドロップダウンリストを実装しようとしています。最初のドロップダウンはグループと呼ばれ、私の2番目は除算です。ので、ここで..ASP.Net MVC2のカスケードドロップダウンリスト

を、それぞれの部門は私の第二のドロップダウンリストに表示されるグループを選択する上で、私はこれが私の見解の一部である

を実装しようとしたコードです。

<%= 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と、その戻り値にどのようにマップされているかについては明確ではありません。

ありがとうございます。 マラシー。

答えて

0

私は実際にあなたがそのテキストをまっすぐに挿入するときに新しい要素を追加しているとは思わない。たとえば、次のように試してみてください。

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

これを試してみてください。

関連する問題