2013-05-21 106 views
2

的我对如何实现以下问题:MVC动态内容的onchange下拉列表

我有活动下拉列表,我想在一个活动的onchange事件,我的名单将与ID来获取它被设置在我的模型与我的代码AJAX

例子如下

Ajax的方法来设置ID

function GetSelectedValue(DropDownID, HiddenFieldID) { 

    $('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val()); 

    $('#' + DropDownID).change(function() { 
     $('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val()); 

     $.ajax({ 
      url: 'Afmeldingen', 
      type: "POST", 
      data: JSON.stringify({ 'ActiviteitenID': $('#' + DropDownID + ' option:selected').val() }), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
       jQuery.globalEval(data.Callback); 
      }, 
      error: function (error) { 
       //alert(error); 
      } 
     }); 
    }); 
} 
$(document).bind('pageinit', function() { 
    GetSelectedValue('details', 'act_id'); 
}); 

表单元素

@using (Html.BeginForm()) 
{ 
    <div data-role="collapsible" data-inline="true" data-content-theme="b" data-collapsed="false"> 
     <h3>@DateTime.Today.ToShortDateString()</h3> 
     <div data-role="collapsible-set" data-inline="true" data-content-theme="b" data-collapsed="true"> 
      <select id="details"> 
       @foreach (var item in Models.Taken.ActivityList) 
       { 
        <option value="@item.ID">@item.Comments</option> 
       } 
      </select> 
      @Html.Hidden("act_id") 
      @foreach (var item in Talent.Subscription.Fetch(null, Models.Taken.ActID ?? 1L, null, null)) 
      { 
       <div data-role="collapsible" data-content-theme="b" data-collapsed="true"> 
        <h3> 
         @Html.Label("", item.Participant.CompleteName) 
        </h3> 
        @Html.CheckBoxFor(m => m.DeelnemerActive.HasValue, htmlAttributes: new { data_role = "CheckBox" }) 
        @foreach (var af in Talent.Afmelding.Fetch(null, Models.Tasks.ActID ?? 1L, null, null)) 
        { 
         @Html.Label("", "Comments") 
         @Html.TextBox("Reason", af.Reason); 
        } 
       </div> 
      } 
     </div> 
    </div> 
} 

我希望你能帮助我实现这一点,或者你有一个想法如何做到这一点

+1

什么问题你正面临着与您的实现? –

回答

4

这可能是我能找到的最好的例子会帮助你。

http://blog.krisvandermast.com/CommentView,guid,b1a264ac-c48f-463e-9f55-db24e2a9b635.aspx

他加载动态上的 按钮的onclick从一个局部视图的数据。你可以在这里使用你的onchange。

-

有一个在这个例子中看到级联的下拉列表中是如何工作的:

http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/cascading-dropdownlist-in-Asp-Net-mvc/

-

你也可以考虑使用淘汰赛JS,就像描述一样这里ED:

http://www.dotnetexpertguide.com/2012/06/cascading-dropdown-knockoutjs-aspnet.html