下面是我的kendo网格代码
@(Html.Kendo().Grid<DataSource>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Quote_ID).Filterable(false);
columns.Bound(p => p.Ticket_ID).Groupable(true);
columns.Bound(p => p.Channel).Groupable(true);
columns.Bound(p => p.Agent_Alias).Groupable(true).Hidden(true);
columns.Bound(p => p.Shipping_Carrier).Groupable(true).Hidden(true);
columns.Bound(p => p.Quote_ID).Title("View
Details").Groupable(false)
.Template(@<text>
@Html.ActionLink("Show Product Details", "GridRowSummary",
"GridOrderSummary")</text>);
})
来自ActionLink我正在尝试调用控制器的动作方法。
Below My controller code
public ActionResult GridRowSummary()
{
return View();
}
使用 Template
使用ajax绑定网格,例如:
columns.Template(c => @Html.ActionLink("GridRowSummary", "GridOrderSummary", new { id = c.Id, }));
如果不使用AJAX绑定网格,请在列上使用ClientTemplate
属性,以及一种显示相关数据的方法,例如:
columns.Bound(p => p.Quote_ID).Title("View Details").Groupable(false)
.ClientTemplate(@Html.ActionLink("#=Quote_ID#", "GridRowSummary", new { ID = "#=ID#" }).ToHtmlString());
有第三种方法(有点混乱(,它允许您添加自定义按钮/图标等。g:
columns.Bound(p => p.Quote_ID).ClientTemplate("<a href='" + @Url.Action("GridRowSummary", "GridOrderSummary", new { id = "#=Id#" }) + "' class='btn btn-primary'><i class='fa fa-eye'></i> Link</a>" );
编辑
通过查看FAQ部分,找到了一个更整洁的解决方案,您可以通过控制器名称和您的Quote_ID
参数(尽管这种方式确实涉及设置JavaScript函数(:
columns.Bound(p => p.Quote_ID).ClientTemplate("#= getDetails(data) #");
<script>
function getDetails(data) {
var action = '@Url.Action("NameOfMethod", "NameOfController")';
var html = kendo.format("<a href='{0}/{1}'>Link</a>",
action,
data.Quote_ID
);
return html;
}
</script>
对于以下代码的客户端模板工作。替换是必要的。
columns.Bound(p => p.Quote_ID).Title("View Details").Groupable(false)
.ClientTemplate(
@Html.ActionLink("#=Quote_ID#", "Summary", new { Quote_ID = "Id"
}).ToHtmlString().Replace("Id", "#=Quote_ID#"));
此解决方案对我有用。
.Events(events =>
{
events.Change("onRowSelected");
})
function onRowSelected(e) {
debugger;
var gview = $("#grid").data("kendoGrid");
//Getting selected item
var selectedItem = gview.dataItem(gview.select());
var ticketId = selectedItem["Ticket_ID"];
window.location.href = "/GridOrderSummary/GridRowSummary?
ticketId=" + ticketId;
}
//Controller code
公共类GridorderSummaryController:控制器 {
// GET: GridOrderSummary
public ActionResult GridRowSummary(string ticketId)
{
// your code
return View();
}
}