RadGrid переопределить CreateChildControls
Я расширяю tellerick RadGrid, чтобы предоставить ему дополнительный CustomSearchControl.
protected override void CreateChildControls()
{
this.Controls.Add(CustomSearchControl);
base.CreateChildControls();
this.Controls.Add(CustomSearchControl);
}
Кажется, что base.CreateChildControls() должен иметь вызов clear элементов управления, потому что первый CustomSearchControl исчезает.
Я попробовал это вместо этого:
protected override void CreateChildControls()
{
base.CreateChildControls();
this.Controls.AddAt(0,CustomSearchControl);
this.Controls.Add(CustomSearchControl);
}
Но это создает ошибку состояния представления... поскольку ни один элемент управления не добавляется в состояние представления и вставка нарушает иерархию коллекции элементов управления.
1 ответ
Я только заметил, что это осталось открытым долгое время. Я думаю, я никогда не возвращался, чтобы сказать, что я обнаружил источник моего огорчения. По сути, в RadGrid есть два определения метода CreateChildControls. Тот, который мне нужно было переопределить, имеет подпись int return. Как только я использовал этот метод, в отличие от метода void по умолчанию, элементы управления были успешно добавлены в viewstate, и с миром все было в порядке.