我有一个带有Kendo网格的MVC 4项目。网格是多选的。如何在按钮单击时将所选行的ID传递给控制器?
感谢。
这是我的网格:
@(Html.Kendo().Grid(Model.Manifest)
.Name("PackageGrid")
.Columns(columns =>
{
columns.Bound(p=>p.PackageId).Hidden();
columns.Bound(p => p.PackageName)
.Template(@<text>@Html.ActionLink(@item.PackageName,"PackageDetails","ExternalIntegration", new {id=@item.PackageId}, null)</text>);
columns.Bound(p => p.NumberOfDaysAgo);
columns.Bound(p => p.LastEvent);
columns.Bound(p=>p.ProcessDate);
columns.Bound(p=>p.ProcessTime).Title("Process Time(ms)");
columns.Bound(p=>p.DomainMessageCount);
columns.Bound(p => p.FailureParseEventCount).Title("Items of Concern");
})
.Sortable()
.Filterable(filterConfig => filterConfig
.Messages(messageConfig => messageConfig
.Filter("Apply")
.Info("Set Filter")))
.Selectable(selectable => selectable.Mode(GridSelectionMode.Multiple))
.DataSource(dataSource => dataSource
.Server()
.Model(model => model.Id(p => p.PackageId))
)
答案 0 :(得分:1)
由于您可以使用多个行选择,因此可以使用select()
方法,它将返回您选择的行数组。然后,您可以在按钮单击事件中访问下面的行值。
var packageGrid = $("#PackageGrid").data("kendoGrid");
var rows = packageGrid.select();
rows.each(function(index, row) {
var selectedItem = packageGrid.dataItem(row);
// var packageName= selectedItem.PackageName;
});
谢谢!