如何在网格视图中使用输入?

时间:2013-08-14 14:26:50

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我将使用网格视图。它每行包含一个复选框。

用于删除行。例如,当用户检查了一些支票簿并单击删除按钮时,选中的行必须删除。

现在如何在我的操作中提供已检查的行ID?

你有什么想法吗?

感谢。

2 个答案:

答案 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表单中,并将“删除”按钮设置为此表单的“提交”按钮。然后,当单击该按钮时,将提交表单,并将所选复选框的值发送到控制器操作,以便您可以删除相应的记录。