我是MVC3的新手。我编写了一个应用程序,在其中我将数据显示到带有复选框的webgrid中。我试图找到如何在单击复选框时发送控制器操作方法的特定行ID。任何帮助表示赞赏。
答案 0 :(得分:0)
这一切都取决于你想要做什么。通常,在视图中,我将添加一个数据属性,如data-rowid =“###”,然后使用jQuery捕获.click事件。然后在.click事件中,检索data-rowid的被点击元素值并调用.ajax将数据发布到控制器。
答案 1 :(得分:0)
这是一个完整的示例,其中我有一个WebGrid,最后一列包含一个“删除”链接,该链接使用Ajax在服务器上调用操作。完成Ajax请求后,将从表中删除相应的行。 MvcHtmlString
用于将span标记注入列中。它包含一个id值,随后用于标识要从表中删除的行。
<div id="ssGrid">
@{
var grid = new WebGrid(canPage: false, canSort: false);
grid.Bind(
source: Model,
columnNames: new[] { "Location", "Number", "Protection", "Methodology" }
);
}
@grid.GetHtml(
tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("Location", "Location"),
grid.Column("Number", "Number"),
grid.Column("Protection", "Protection"),
grid.Column("Methodology", "Methodology"),
grid.Column(
format: (item) =>
new MvcHtmlString(string.Format("<span id='ssGrid{0}'>{1}</span>",
item.SecondarySystemId,
@Ajax.RouteLink("Remove",
"Detail", // route name
new { action = "RemoveSecondarySystem", actionId = item.SecondarySystemId },
new AjaxOptions {
OnComplete = "removeRow('ssGrid" + item.SecondarySystemId + "')"
}
)
)
)
)
)
)
</div>
<script>
function removeRow(rowId) {
$("#" + rowId).closest("tr").remove();
}
</script>