WebPartManager.CopyWebPart(WebPart) 方法

定义

Web 部件控件集用于创建控件的副本 WebPart 或服务器控件,以便将控件添加到网页。

protected:
 virtual System::Web::UI::WebControls::WebParts::WebPart ^ CopyWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
protected virtual System.Web.UI.WebControls.WebParts.WebPart CopyWebPart(System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member CopyWebPart : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.WebPart
override this.CopyWebPart : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.WebPart
Protected Overridable Function CopyWebPart (webPart As WebPart) As WebPart

参数

webPart
WebPart

要复制的服务器 WebPart 控件。

返回

要添加到页面的 A WebPart

注解

不能直接从代码调用 CopyWebPart 该方法。 在向页面添加新动态WebPartManager控件或服务器控件的过程中,控件在内部WebPart调用此方法。 动态控件通过编程方式或通过 Web 部件用户界面(UI)添加到页面,例如,用户通过控件目录添加控件,而不是直接在页面标记中声明的静态控件。

注释

如果开发人员希望使该方法能够处理其他控件复制方案,则可以在派生类中重写该方法。 有关详细信息,请参阅“继承者说明”部分。

添加新的动态控件(如果它是 WebPart 控件)时,该方法 CopyWebPart 将返回控件的新实例。 如果要添加的控件是一些其他类型的服务器控件(如用户控件、自定义控件或 ASP.NET 控件),则控件已由 Web 部件控件集包装为 GenericWebPart 对象。 CopyWebPart当方法遇到GenericWebPart控件时,它将返回控件的新实例,该实例GenericWebPart包含包装在其中的子控件的新实例。

CopyWebPart当该方法创建要返回的控件的新副本时,它还会将所有属性的值重置为其默认值。 请注意,如果要保留可个性化属性的值并将其复制到新控件实例,还应调用 CopyPersonalizationState 该方法。 该方法执行 CopyWebPart 的最后一步是调用 CreateDynamicWebPartID 方法以获取控件的新 ID。

注释

由于该方法获取复制的控件的新 ID,因此不应依赖引用按原始 ID 添加到页面的动态控件。 应改为引用方法返回的控件的新实例。

继承者说明

该方法被声明为 virtual 这样,以便开发人员可以从类继承 WebPartManager 、重写该方法,并为创建控件副本的其他方案提供。 例如,该方法可以选择接收为已序列化为 XML 文件的控件的输入。 该方法可以反序列化 XML(如果存在),然后调用基方法来处理现有事例并返回控件的新实例 WebPart

适用于

另请参阅