Привязка кендо к DataTable с дополнительным пользовательским столбцом

Кто-то указал мне на Привязка кендо к таблице данных, которая имеет следующий код в построителе сетки:

.Columns(columns =>
{
    foreach (System.Data.DataColumn column in Model.Columns)
    {
        columns.Bound(column.ColumnName);
    }
})

Это работает, но я также хочу добавить столбец «редактировать», поэтому я добавил эту строку перед foreach:

columns.Command(command => command.Edit().Text("Edit").UpdateText("Submit")).Width(70).HtmlAttributes(new { style = "text-align: right;" });

который выдает «Шаблоны можно использовать только с доступом к полю, доступом к свойствам, индексом одномерного массива или выражениями пользовательского индексатора с одним параметром».

Как добавить столбец редактирования?


person Kelly Cline    schedule 09.09.2013    source источник


Ответы (1)


Как оказалось, «Как я могу добавить столбец редактирования?» это неправильный вопрос. В коде для добавления команды «Редактировать» нет ничего плохого; однако его добавление выявило проблему, о которой сообщалось. Другими словами, «Шаблон» в сообщении об ошибке — это шаблон редактирования, который не знает, какой столбец в DataTable использовать для своего идентификатора.

При определении DataSource для сетки у меня был этот код:

                .Model(model => 
                {
                    foreach (System.Data.DataColumn column in Model.Columns)
                    {
                        model.Field(column.ColumnName, column.DataType);
                    }                
                })

как определено в образце на форуме поддержки Telerik. Это было нормально для простого отображения данных в сетке, но когда я представил идею редактирования, тогда имело значение отсутствие Model.Id. Затем возник вопрос, как определить идентификатор, когда модель представляет собой таблицу данных. Это отдельный вопрос, который я разместил здесь.

person Kelly Cline    schedule 10.09.2013