1

我正在扩展 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);
}

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

4

1 回答 1

1

我只是注意到这已经打开了很长时间。我想我再也没有回来说我发现了我懊恼的根源。基本上,RadGrid 中的 CreateChildControls 方法有两个定义。我需要覆盖的那个有一个 int 返回签名。一旦我使用该方法而不是默认的 void 方法,控件就会成功添加到视图状态,并且一切正常。

于 2010-11-18T15:18:57.857 回答