在网格中设置kendo telerik命令列的值

时间:2019-02-22 18:12:53

标签: telerik-grid telerik-mvc

我试图在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”

1 个答案:

答案 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);
    }        
}

结果是

enter image description here