以下是我的剑道网格代码
@(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我试图调用我的控制器的Action Method。
Below My controller code
public ActionResult GridRowSummary()
{
return View();
}
答案 0 :(得分:2)
使用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());
还有第三种方法(有点凌乱)允许你添加自定义按钮/图标等,例如:
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>
答案 1 :(得分:0)
对于下面的客户端模板代码有效。替换是必要的。
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#"));
答案 2 :(得分:0)
此解决方案适合我。
.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
public class GridOrderSummaryController:Controller {
// GET: GridOrderSummary
public ActionResult GridRowSummary(string ticketId)
{
// your code
return View();
}
}