Я играю с созданием некоторых методов расширения поверх расширений Kendo Core.
Рабочий пример -
public static DatePickerBuilder MyDatePicker<T>(this IHtmlHelper<T> helper)
{
return helper.Kendo().DatePicker().HtmlAttributes(new { style = "width:100%;" });
}
Реализация
@(Html.MyDatePicker().Name("testDatePicker"))
Сейчас ..... сетка ... это где я действительно хотел бы определить кучу стандартных значений по умолчанию ...
public static GridBuilder<T> MyGridDefault<T>(this IHtmlHelper<T> helper) where T : class
{
return
helper.Kendo().Grid<T>()
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.Pageable();
}
Реализация -
@(Html.MyGridDefault<Person>()
.Name("TestGrid1")
.Columns(columns =>
{
columns.Bound(c => c.LastName);
columns.Bound(c => c.FirstName);
})
.BindTo(people)
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.ServerOperation(false)
))
Это выдает ошибку -
IHtmlHelper (DashboardViewModel) не содержит определения для «MyGridDefault», а наилучшая перегрузка метода расширения «MyKendoExtensions.MyGridDefault (IHtmlHelper)» требует получения типа «IHtmlHelper»
* 1019: Я заменил () для <> после IHtmlHelper.Я не могу вспомнить, как избежать этого ...
DashboardViewModel - модель, для которой типизировано представление.Итак, я думаю, что я понимаю, что IHtmlHelper, T - это либо модель представления, либо некоторый тип базы в Core, когда они не вводятся в модель?
Что интересно, реализация не жалуется на привязку столбца ... поэтому реализованная Grid видит, что она привязана к человеку ... но я не могу скомпилировать из-за ошибки IHtmlHelper.Я новичок в Core, и, следовательно, Kendo на ядре ... любая помощь будет оценена.