Установка значения столбца команды kendo telerik в сетке - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь установить значение (текст внутри кнопки) столбца команды в сетке 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\\#");

Но я получаю то же сообщение об ошибке - «Код активации не определен»

1 Ответ

0 голосов
/ 05 августа 2019

Вы можете присвоить кнопке имя, используя 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

...