RadGrid override CreateChildControls

425 Views Asked by At

I'm extending the tellerick RadGrid control to give it an optional CustomSearchControl.

protected override void CreateChildControls()
{

    this.Controls.Add(CustomSearchControl);
    base.CreateChildControls();
    this.Controls.Add(CustomSearchControl);
}

It seems that base.CreateChildControls() must have a clear controls call in it because the first CustomSearchControl disappears.

I tried this instead:

protected override void CreateChildControls()
{
    base.CreateChildControls();
    this.Controls.AddAt(0,CustomSearchControl);
    this.Controls.Add(CustomSearchControl);
}

But it creates a viewstate error... as neither control is being added to the viewstate and the insert is breaking the hierarchy of the controls collection.

1

There are 1 best solutions below

0
On BEST ANSWER

I just noticed this has been left open for a long time. I guess I never came back to say that I discovered the source of my chagrin. Basically there are two definitions for the CreateChildControls method in the RadGrid. The one I needed to override has an int return signature. Once I used that method as opposed to the default void method the controls were added successfully to the viewstate and all was right with the world.