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, и с миром все было в порядке.

Другие вопросы по тегам