1

テレリックRadGridコントロールを拡張して、オプションのCustomSearchControlを提供します。

protected override void CreateChildControls()
{

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

最初のCustomSearchControlが消えるため、base.CreateChildControls()には明確なコントロール呼び出しが必要なようです。

代わりにこれを試しました:

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

ただし、どちらのコントロールもビューステートに追加されておらず、挿入によってコントロールコレクションの階層が壊れているため、ビューステートエラーが発生します。

4

1 に答える 1

1

私はこれが長い間開いたままになっていることに気づきました。悔しさの源を発見したと言って戻ってきたことは一度もないと思います。基本的に、RadGridのCreateChildControlsメソッドには2つの定義があります。オーバーライドする必要があるものには、intreturn署名があります。デフォルトのvoidメソッドではなく、そのメソッドを使用すると、コントロールがビューステートに正常に追加され、すべてが正しくなりました。

于 2010-11-18T15:18:57.857 に答える