2017-08-16 27 views
0

MVCアプリケーションを初めて使用しています。自分のページにドロップダウンを1を追加しようとしました。今私はCSHTMLが他のドロップダウンで選択した値に応じてドロップダウンを表示します。

<div> 
    @{ 
     List<SelectListItem> listItems = new List<SelectListItem>(); 
     listItems.Add(new SelectListItem 
     { 
     Text = "Car", 
     Value = "Car" 
     }); 
     listItems.Add(new SelectListItem 
     { 
     Text = "Bike", 
     Value = "Bike", 
     }); 
     } 
     @Html.Label("Vehicle") 
     @Html.DropDownList("VehicleType", listItems, new { @class = "form-control" }) 
     </div> 
     <div> 
     @Html.Label("Cars"); 
     @Html.DropDownListFor(m => m.CarsList, new SelectList(Model.CarsList, "Name", "Name"), "Select Car") 

    @Html.Label("Bike"); 
    @Html.DropDownListFor(m => m.BikeList, new SelectList(Model.BikeList, "Barcode", "Name"), "Select Bike") 
    </div> 

以下のように見える1.

ドロップダウンリストから選択した値に応じて、ドロップダウン2またはドロップダウン3を表示する必要がある今ではすべてを示し、さらに2つのドロップダウン2 & 3を作成しました3つのドロップダウンが表示されますが、車が車として選択されている場合は、車のドロップダウンリストを表示します。どうやってやるの。

答えて

0

ページロード時にコントロールを非表示にして、Jquery変更イベントを使用して表示することができます。

//Hiding the control on page load 
$(function(){ 
    $('#CarsList').hide(); 
} 

//Showing it on selected index. 
$('#VehicleType').on('change', function() { 
    if($('#dropDownId :selected').text() == "Car") 
     $('#CarsList').show(); 
}) 

バイクでも同じことができます。

0

私たちのmvc開発者は通常、クライアント側でそのことを行います。以下のjqueryのスクリプトは、すべての

$("#VehicleType").change(function() { 

       if ($(this).val() == "Car") { 
        $("#CarsList").show(); 
        $("#BikeList").hide(); 
       } 
       else { 

        $("#CarsList").hide(); 
        $("#BikeList").show(); 
       } 

      }); 
0

あなたが最初のドロップダウンの選択に基づいて、対応するドロップダウンを隠し、表示するためにはJavaScriptを使用できることを行います。

関連するラベルを非表示にすることもできますので、コンテナのdivに要素をラップすることをおすすめします。

<div id="car-selection"> 
    @Html.Label("Cars"); 
    @Html.DropDownListFor(m => m.CarsList, 
       new SelectList(Model.CarsList, "Name", "Name"), "Select Car") 
</div> 

<div id="bike-selection"> 
    @Html.Label("Bike"); 
    @Html.DropDownListFor(m => m.BikeList, 
      new SelectList(Model.BikeList, "Barcode", "Name"), "Select Bike") 
</div> 

最初のドロップダウンでchangeイベントを聞き、必要に応じてコンテナdivを非表示にして表示します。

$(function() { 

    updateVisibility(); // Let's show the needed dropdown on page load as well 

    $("#VehicleType").change(function() { 
     updateVisibility(); 
    }); 

    function updateVisibility() { 
     var v = $("#VehicleType").val(); 
     if (v === "Car") { 
      $("#car-selection").show(); 
      $("#bike-selection").hide(); 
     } 
     else if (v === "Bike") { 
      $("#bike-selection").show(); 
      $("#car-selection").hide(); 
     } 
    } 
}); 
+0

ありがとう@Shyjuしかし、私は変更イベントを追加するのですか?それはcshtmlファイルか他の場所にありますか? – user4912134

+0

これを現在のページのスクリプトセクションまたは外部のjavascriptファイルに置くことができます。現在のcshtmlファイルに入れている場合は、 '@section Scripts'領域に入れてjQueryライブラリのロード後に実行されるようにしてください。 – Shyju

+0

これを参考にしてご覧くださいhttps://stackoverflow.com/questions/34147155/where-should-i-place-the-js-script-files-in-a-mvc-application-so-jquery-works- we/34147263#34147263 – Shyju

関連する問題