ドロップダウン リストをビューに追加する例をたくさん見つけることができましたが、Webgrid もあるビューにドロップダウン リストを追加する必要があります。これには 2 つの異なるモデルが必要であり、私が見たところ、ビューごとに 1 つしか持てません。
DDL は 1 つのモデルから、グリッドは別のモデルから埋められます。
ddlで選択されたデータを使用して、グリッドに表示されたデータをフィルタリングしようとしています。
例や記事は大歓迎です。
ティア
ドロップダウン リストをビューに追加する例をたくさん見つけることができましたが、Webgrid もあるビューにドロップダウン リストを追加する必要があります。これには 2 つの異なるモデルが必要であり、私が見たところ、ビューごとに 1 つしか持てません。
DDL は 1 つのモデルから、グリッドは別のモデルから埋められます。
ddlで選択されたデータを使用して、グリッドに表示されたデータをフィルタリングしようとしています。
例や記事は大歓迎です。
ティア
ViewModel
グリッドとの両方のデータを持つを作成しますDropDownList
。このViewModel
オブジェクトをビューのモデルとして使用します。
パターンの実装に関するさまざまな戦略については、SteveMichelottiの投稿を参照してください。ViewModel
たとえば、次のようなものです。
public class MyViewModel
{
public List<Row> RowsForGrid { get; set; }
public SelectList ItemsForDropdown { get; set; }
}
グリッドに表示されたデータをフィルタリングしようとしているので、次のようにします。
メイン ビューでは、a と呼びますpartial view
。あなたの場合、部分ビューはDropDownList
データを保持します。このようなもの:
@Html.Partial("DropDownView", ViewBag.DropDownViewModel as DropDownViewModel)
コントローラ アクションDropDownViewModel
では、 にデータを入力し、次のように にDropDownList
渡します。DropDownViewModel
ViewBag
DropDownViewModel dropDownViewModel = new DropDownViewModel();
DropDownViewModel.Items = GetDropDownData(); // Fetch the items...
ViewBag.DropDownViewModel = dropDownViewModel;
ビューモデル (DropDownViewModel.cs)
public class DropDownViewModel
{
public SelectList Items { get; set; }
}
部分ビュー (DropDownView.cshtml)
@model DropDownViewModel
@using (Html.BeginForm("YourControllerAction", "YourControllerName", FormMethod.Get))
{
@Html.Label("Search") @Html.DropDownList("YourDataId", Model.Items, String.Empty)
<input type="submit" value="Search" id="submit"/>
}
"YourDataId"
アクションメソッドのパラメーターになり、次のようにユーザーが選択した値が含まれます。
public virtual ActionResult Index(int? YourDataId, GridSortOptions sort)
{
...
}