我正在成功创建Kendo Grid中的按钮,如下所示,按钮实际呈现在<a href="#" onClick="showDetails ..... >
columns: [
{ field: "Title", width: "90px", title: "Event<br />Name" },
{ field: "StartDate", title: "Event<br />Date", width: 35 },
{ field: "Keywords", title: "Event<br />Type", width: 35 },
{ field: "TotalDollars", title: "Total<br />Collected", width: 20 },
{ field: "TotalTransactions", title: "# of<br />Trans.", width: 20 },
{ field: "TotalAttending", title: "# of<br />Attending", width: 30 },
{ field: "SocialViews", title: "# of<br />Views", width: 30 },
{ command: { text: "ManageEvent", click: showDetails }, title: " Edit Event", width: "60px" },
{ command: { text: "ViewEvent", click: showEvent }, title: " View Event", width: "60px" }
]
现在我想更改它们中的某些属性,如果我将更改放在函数showDetails()
中它工作正常,但这看起来有点尴尬,然后在单击函数上然后在执行之前更改属性更多代码。
这有效
function showEvent(e) {
$('.k-grid-ViewEvent').attr('target', '_blank');
var event = this.dataSource.getByUid(this.select().data("uid"));
var id = event.ID;
window.location = "epage.aspx?e=" + id;
}
但事实并非如此,我甚至尝试在其中放置一个TimeOut来等待网格渲染,但仍然没有。
$(function () {
setTimeout(
$.each('.k-grid-ViewEvent', function () {
$(this).attr('target', '_blank');
var event = this.dataSource.getByUid(this.select().data("uid"));
var id = event.ID;
$(this).attr('href', id);
}), 4000);
});
任何人都知道如何,最好是在jQuery中,但我真的不在乎,我可以在使用Kendo Grid Plugin渲染后动态更改这些命令吗?
答案 0 :(得分:2)
尝试使用template
代替command
:
columns: [
// ...
{ template: '<a href="epage.aspx?e=${ID}" target="_blank">ViewEvent</a>', title: 'View Event', width: 60 }
]
答案 1 :(得分:0)
这是我的猜测:
此行中'this'的使用不正确:
var event = this.dataSource.getByUid(this.select().data("uid"));
这里引用了一个链接元素。
此致