2015-06-18 5 views
-1

У меня есть комбо 1, который содержит количество и комбо 2 содержит максимальное значение, выбранное в комбо 1, как я могу установить значения комбо 2 после смены пользователя комбо 1Заполните комбо в зависимости от выбора пользователя

Combo 1:

@Html.DropDownListFor(model => model.QtiteToBuy, new SelectList(
      new List<Object>{ 
        new { value = 0 , text = "0"}, 
        new { value = 1 , text = "1"}, 
        new { value = 2 , text = "2"}, 
        new { value = 3 , text = "3"}, 
        new { value = 4 , text = "4"}, 
        new { value = 5 , text = "5"}, 
        new { value = 6 , text = "6"}, 
        new { value = 7 , text = "7"}, 
        new { value = 8 , text = "8"}, 
        new { value = 9 , text = "9"} 
       }, "value", "text")) 

если пользователь Выберите Combo1 = 4 я должен иметь в комбо 2 от 0 до 4

+0

Вам необходимо JavaScript/JQuery, чтобы ответить на стороне клиента изменения. Провести исследования. И код может быть просто '@ Html.DropDownListFor (m => m .QtiteToBuy, новый SelectList (Enumerable.Range (0, 10)))' –

ответ

0

@melom Я сделал sample here, который поможет вам начать. Дайте мне знать, если у вас возникнут дополнительные вопросы.

Подводя итог сначала, я заполнил combo1 по обратной передаче, а затем заполнил combo2, используя ajax.

Вид:

<div> 
    @Html.DropDownList("combo1", (IEnumerable<SelectListItem>)ViewBag.combo) 
    <select id="combo2"></select> 
</div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#combo1').change(function(){  
      $.ajax({ 
       type: "GET", 
       url: "@Url.Action("GetSecondComboData", "Home")", 
       data: { val : $(this).val() }, 
       success: function (data) { 
        var options = $("#combo2"); 
        options.empty(); 
        $.each(data, function() { 
         options.append($("<option />").val(this).text(this)); 
        }); 
       }, 
       dataType: 'json' 
      });  
     }); 
    }); 
</script> 

Действие:

[HttpGet] 
public ActionResult Index() 
{ 
    var values = new List<dynamic> 
    { 
     new { value = 0 , text = "0"}, 
     new { value = 1 , text = "1"}, 
     new { value = 2 , text = "2"}, 
     new { value = 3 , text = "3"}, 
     new { value = 4 , text = "4"}, 
     new { value = 5 , text = "5"}, 
     new { value = 6 , text = "6"}, 
     new { value = 7 , text = "7"}, 
     new { value = 8 , text = "8"}, 
     new { value = 9 , text = "9"} 
    }; 

    ViewBag.combo = new SelectList(values, "value", "text"); 

    return View(); 
} 

[HttpGet] 
public JsonResult GetSecondComboData(int val) 
{ 
    return Json(Enumerable.Range(0, val+1), JsonRequestBehavior.AllowGet); 
} 
Смежные вопросы