私のRazorビューには、表示されていない3つのプロパティを持つテーブルがあります。Id_Loaction
、Id_Level
&Id_Section
このテーブルの上には、適切な ID を値として持つ、すべての場所、レベル、およびセクションのチェックボックスの 3 つのリストがあります。
@foreach (var section in Model.Sections)
{
<li>
<input type="checkbox" data-bind="checked: data" value="@Html.Encode(section.Value)"/>@Html.Encode(section.Text)
</li>
}
注:section.Value
は、表の行でも使用される要素の ID です。
テーブル自体はかなり単純に構築されています。
@foreach (var item in Model.Offers)
{
<tr data-bind="visible: data.IsChecked == true ">
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Location)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.Text)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.Value)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.IsChecked)
</td>
<td>
@Html.DisplayFor(modelItem => item.Level)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=item.ID })
</td>
</tr>
}
<script type="text/javascript">
var data = @Html.Raw(Json.Encode(Model.Sections));
function FormViewModel(data) {
this.data = ko.observableArray(data);
}
window.viewModel = new FormViewModel(data);
console.log(viewModel.data());
ko.applyBindings(viewModel);
</script>
/編集: コードを実際の混乱に合わせて更新しました。Model.Sections は ViewModel であり、Model.Offers.Section に使用される ViewModel と同じです。どちらにも、Value、Text、および IsChecked プロパティが含まれています。
両方を比較して、セクションがチェックされているテーブル行のみを表示するにはどうすればよいですか?
ゆっくりしてください。敬具