2016-10-31 3 views
0

У меня есть простой ViewModel, что я прошел, чтобы посмотреть в моем приложении, у него есть два SelectLists с несколькими вариантами, как, например:ASP.NET опции выпадающего списка зависит от выбранного варианта в другом списке

public class MyViewModel { 

public SelectList Names { get; set;} // e.g options - N1,N2,N3 

public SelectList Years { get; set;} // e.g options - Y1,Y2,Y3 


} 

Есть для каждого из этих SelecLists определено несколько опций. На мой взгляд, у меня есть два DropDownListFor, в которых пользователь может легко выбрать вариант - он независим.

Но то, что я хочу сделать, заключается в том, что, когда пользователь выбирает в 1-й вариант раскрывающегося списка N1, тогда во втором раскрывающемся списке будут доступны только варианты Y2, Y3. Когда пользователь выбирает N2, во втором появляется только N3 и т. Д.

Что-то с jQuery возможно? Как получить информацию, какая опция выбрана в данный момент в раскрывающемся списке? С JavaScript?

+0

Как сделать вы определяете условие того, что должно появиться и что не должно быть во втором списке? это как 'x' в первом списке, это означает« x + 1 »вперед во втором? – Searching

ответ

0

Да, это невозможно с javascript.

Прежде всего, необходимо, чтобы получить выбранную опцию из DropDownList с помощью JavaScript или Jquery, например, так:

yourSelect.options [yourSelect.selectedIndex] .value

то есть для установки отключенного атрибута с помощью javascript или jquery.

Ответ на этот пост here может быть полезен.

Кроме того посмотрите на эту example

Если вы хотите, чтобы они были полностью удалены, то вы wolud должны взять их на deleteing узел, используя JQuery, например.

0

Я решить мою проблему с JQuery, если кто-то будет нужно:

@Html.DropDownListFor(model => model.Name, Model.Names, "Wybierz rodzaj", new { @class = "form-control", onchange="setRateOptionsByDepositType(this.value)"}) 

.js файл:

function setRateOptionsByDepositType(type) { 

    if (type === "Lokata standardowa") { 
     $('#rate').prop('selectedIndex', 0); 
     $('option[value="0,60"]').hide(); 
     $('option[value="1,70"]').show(); 
     $('option[value="2,00"]').show(); 
     $('option[value="2,20"]').show(); 
     $('option[value="2,70"]').show(); 
    } 
    else if (type === "Rachunek oszczędnościowy") { 
     $('#rate').prop('selectedIndex', 0); 
     $('option[value="0,60"]').show(); 
     $('option[value="1,70"]').hide(); 
     $('option[value="2,00"]').hide(); 
     $('option[value="2,20"]').hide(); 
     $('option[value="2,70"]').hide(); 
    } 
} 

Где ставка идентификатор другой DropDownList на этой странице