如何使用 Kendo 网格中 url 列的模板显示 window
How to show a window with template from a url column in Kendo Grid
我有一个 kendoGrid,其列使用如下所示的命令:
command: { text: "View Details", click: showDetails }
该命令调用打开 kendoWindow 的 showDetails 方法:
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
这按预期工作。现在我想要另一列是 url,当您单击它时它会执行相同的操作。到目前为止,这是我对该专栏的模板所拥有的内容:
template: '<a href="javascript:void(0)" onclick=showDetails>#=CourseTitle#</a>'
我基本上是按照 Kendo 网站上的命令示例:http://demos.telerik.com/kendo-ui/grid/custom-command。该命令有一个单击 属性,但模板没有,并且尝试将 url 的 onclick 属性设置为我用于命令的单击 属性 的相同值没有工作,我不确定如何修改它以使其按我的意图工作。
要在 onclick 属性中调用函数,您应该使用带括号的语法:
<a onlick='functionName(this)'></a>
然后在你的函数中你可以通过参数获取,dom元素是点击目标。
所以你的模板应该是这样的:
template: '<a href="javascript:void(0)" onclick="showDetails(this)">#=CourseTitle#</a>'
您需要像这样修改函数 showDetails:
function showDetails(e) {
var dataItem, grid;
if(e.currentTarget === undefined){
grid = $(e).closest(".k-grid").data('kendoGrid');
dataItem = grid.dataItem($(e).closest("tr"));
}
else{
e.preventDefault()
dataItem = this.dataItem($(e.currentTarget).closest("tr"));
}
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
工作 Kendo UI 道场示例:http://dojo.telerik.com/ACozi
我有一个 kendoGrid,其列使用如下所示的命令:
command: { text: "View Details", click: showDetails }
该命令调用打开 kendoWindow 的 showDetails 方法:
function showDetails(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
这按预期工作。现在我想要另一列是 url,当您单击它时它会执行相同的操作。到目前为止,这是我对该专栏的模板所拥有的内容:
template: '<a href="javascript:void(0)" onclick=showDetails>#=CourseTitle#</a>'
我基本上是按照 Kendo 网站上的命令示例:http://demos.telerik.com/kendo-ui/grid/custom-command。该命令有一个单击 属性,但模板没有,并且尝试将 url 的 onclick 属性设置为我用于命令的单击 属性 的相同值没有工作,我不确定如何修改它以使其按我的意图工作。
要在 onclick 属性中调用函数,您应该使用带括号的语法:
<a onlick='functionName(this)'></a>
然后在你的函数中你可以通过参数获取,dom元素是点击目标。 所以你的模板应该是这样的:
template: '<a href="javascript:void(0)" onclick="showDetails(this)">#=CourseTitle#</a>'
您需要像这样修改函数 showDetails:
function showDetails(e) {
var dataItem, grid;
if(e.currentTarget === undefined){
grid = $(e).closest(".k-grid").data('kendoGrid');
dataItem = grid.dataItem($(e).closest("tr"));
}
else{
e.preventDefault()
dataItem = this.dataItem($(e.currentTarget).closest("tr"));
}
wnd.content(detailsTemplate(dataItem));
wnd.center().open();
}
工作 Kendo UI 道场示例:http://dojo.telerik.com/ACozi