У меня есть идея расширить элемент управления GridView с помощью ComboBox и DataPager (чтобы не повторять один и тот же код на всех страницах), но если я создаю ComboBox внутри унаследованного MyGridView, я не могу заполнить их данными. Что я должен сделать для правильной привязки данных? Можно ли использовать элементы управления таким образом?
Я унаследовал MyGridView: GridView и создал защищенное свойство ComboBox. В методе OnInit я устанавливаю ComboBox.DataSource = new List () {10,20,30}. В методе OnRender я добавил ComboBox.Render (...)
public class MyGridView : GridView
{
protected int PageSize { get; set; } = 20;
protected readonly List<int> pageSizeOptions = new List<int>() { 20, 50, 100 };
protected ComboBox PageSizeComboBox { get; set; }
protected override void OnInit(IDotvvmRequestContext context)
{
PageSizeComboBox = new ComboBox();
PageSizeComboBox.DataSource = pageSizeOptions;
PageSizeComboBox.SelectedValue = PageSize;
PageSizeComboBox.SelectionChanged = () => new Task(UpdatePageSize);
}
public override void Render(IHtmlWriter writer, IDotvvmRequestContext context)
{
base.Render(writer, context);
PageSizeComboBox.Render(writer, context);
}
...
Элемент управления MyGridView правильно отображает GridView, но ComboBox отображается пустым (<select data-bind="valueAllowUnset: true"></select>
)