我将使用网格视图。它每行包含一个复选框。
用于删除行。例如,当用户检查了一些支票簿并单击删除按钮时,选中的行必须删除。
现在如何在我的操作中提供已检查的行ID?
你有什么想法吗?
感谢。
答案 0 :(得分:1)
行。我们假设您要检索产品列表并在原始html网格中显示它们。
首先,按照以下方式安排您的观点:
@model IEnumerable<MyPrj.Product>
// ... Other codes ...
<table id="tblGrid">
<tr>
<th>Delete</th>
<th>ProductName</th>
// ... Other Properties ...
</tr>
@foreach(var item in Model)
{
<tr id="tr@(item.ProductID)">
<td>
@Html.Raw("<input type='checkbox' id='chk@(item.ProductID)' onclick='chkChange(@chkID)' />");
</td>
<td>@item.ProductName</td>
// ... Other Properties ...
</tr>
}
</table>
<input type="button" id="btnDelete" value="Delete Selected Rows" onclick="performDelete()"/>
现在,您拥有了视图,它将使用提供的模型为您渲染网格。然后,您需要添加一些javascript和jquery代码来为您执行行删除。
处理复选框点击的功能:
<script>
function chkChange(id) {
if ($(id).val() != 'false')
$(id).val('false');
else
$(id).val('true');
}
// ...
</script>
最后,还有一个处理删除按钮点击的功能:
function performDelete() {
var rows = $("input:checked");
rows.each(function () {
$(this).parent().parent().remove();
});
}
就是这样! - 你完成了。完整的<script>
博客如下所示:
<script>
function chkChange(id) {
if ($(id).val() != 'false')
$(id).val('false');
else
$(id).val('true');
}
function performDelete() {
var rows = $("input:checked");
rows.each(function () {
$(this).parent().parent().remove();
});
}
</script>
答案 1 :(得分:0)
您可以将网格及其复选框放在HTML表单中,并将“删除”按钮设置为此表单的“提交”按钮。然后,当单击该按钮时,将提交表单,并将所选复选框的值发送到控制器操作,以便您可以删除相应的记录。