gpt4 book ai didi

c# - 覆盖 WebControl 上的控件集合

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:38 26 4
gpt4 key购买 nike

我正在尝试覆盖继承自 WebControl 的控件的 Controls 集合,以便当用户向 Web 控件添加控件时,我可以在它之前和之后放置按钮,并将其放入自己的包装器中。像这样:

protected override ControlCollection Controls
{
EnsureChildControls();
return this._panel.Controls;
}

但是,当我这样做时,由于某种原因,子控件的 View 状态没有得到维护。有什么想法吗?

谢谢!

最佳答案

ViewState 是一个与控件树并行构建的对象图,因此这些类型的更改往往会产生您所描述的副作用。可以说你本质上是在劫持 Controls 对象并赋予它不同的含义,这并不是覆盖的真正意图。相反,override 是为了提供不同的机制来实现相同的含义或意图。 “我的一个 child 的 child 控制权”“我的 child 控制权” 不同。

有更好的方法可以完成您所描述的内容。一种可能是在您的控件上显式公开一个属性,该属性是用户应将其控件添加到的“区域”。如果意图是将其作为一个复杂的控件,它有一个可自定义的区域,那么就公开该区域。

关于c# - 覆盖 WebControl 上的控件集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/756740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com