【发布时间】:2013-06-28 13:57:20
【问题描述】:
在我的 Razor 视图中,我有一个包含 3 个未显示属性的表格。 Id_Loaction, Id_Level & Id_Section
在此表上方,我为每个位置、级别和部分提供了 3 个复选框列表,并以适当的 Id 作为值。
@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 属性。
如何比较这两者并仅显示选中该部分的表格行?
请对我慢一点。 亲切的问候
【问题讨论】:
-
您要过滤客户端还是服务器端?
-
我很想过滤客户端,但是由于我不知道从哪里开始,只要没有页面刷新,我会尽我所能
-
在这种情况下,您应该展示您的页面是如何设置的。你的表是如何生成的?您标记了淘汰赛,那么您是否使用
foreach绑定?也许放在一起一点 jsFiddle,这会让别人很容易帮助你。 -
我提到了淘汰赛,因为我有一些非常基本的经验,并且看到了一些很棒的结果。所以本质上:有人取消选中位置 Simbabwe (id4),并且必须隐藏位置 id 4 所在的每一行
标签: javascript jquery asp.net-mvc-4 knockout.js razor-2