我试图在Telerik MVC网格中设置命令列的值(按钮内的文本)。
我有此代码:
columns.Command(o => o.Custom("ActivationCode").Text("\\#=ActivationCode\\#").Click("showDetails")).Width(180);
我想做的是使按钮内的文本呈现为基础数据模型的值。例如,示例值为AY63P9。
使用Text()方法仅在该函数中呈现值,而不插入绑定的值。
我也尝试使用
columns.Command(o => o.Custom("ActivationCode").Click("showDetails")).Width(180).Title("\\#=ActivationCode\\#");
但是我收到相同的错误消息-“未定义ActivationCode”
答案 0 :(得分:0)
您可以使用jQuery命名按钮。
如下所示为网格声明DataBound
事件,
@(Html.Kendo().Grid<Models.TempTable>()
.Name("tempData")
.Columns(columns =>
{
columns.Bound(p => p.Name).Width(100);
columns.Bound(p => p.Status).Width(100);
columns.Command(command =>
{
command.Custom("ActivationCode").Text("");
}).Width(100);
})
.Events(e => { e.DataBound("tempData_DataBound"); })
在DataBound
方法中,获取要分配的值。例如,获取第一列值(“名称”列)并将其分配给按钮。
function tempData_DataBound(e) {
var tmpTable = $('#tempData').find('table tbody');
var rowCnt = e.sender._data.length;
for (var i = 0; i < rowCnt; i++) {
var _tempName = $(tmpTable).find('tr:eq('+ i +') td:eq(0)').html();
$(tmpTable).find('tr:eq(' + i + ')').find('.k-grid-ActivationCode').text(_tempName);
}
}
结果是