RadGrid覆盖CreateChildControls

时间:2010-09-08 17:45:11

标签: c# radgrid createchildcontrols

我正在扩展tellerick RadGrid控件,为它提供一个可选的CustomSearchControl。

protected override void CreateChildControls()
{

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

似乎base.CreateChildControls()必须在其中有一个清晰的控件调用,因为第一个CustomSearchControl消失了。

我尝试了这个:

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

但是它会创建一个视图状态错误......因为没有控件被添加到视图状态,并且插入正在破坏控件集合的层次结构。

1 个答案:

答案 0 :(得分:1)

我刚刚注意到这已经打开了很长时间。我想我再也没有回来说我发现了我懊恼的来源。基本上,RadGrid中的CreateChildControls方法有两个定义。我需要覆盖的那个有一个int返回签名。一旦我使用了该方法而不是默认的void方法,控件就被成功地添加到了viewstate中,并且所有这些都适合于这个世界。