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 或伺服器控制項。

傳回

要加入至頁面的 WebPart

備註

您無法直接從程式碼呼叫 CopyWebPart 方法。 這個方法會在控制項內部呼叫 WebPartManager ,做為將新的動態 WebPart 或伺服器控制項新增至頁面的程式之一部分。 動態控制項會以程式設計方式或透過網頁元件使用者介面 (UI) 新增控制項,例如使用者從控制項目錄新增控制項,而不是直接在頁面標記中宣告的靜態控制項。

注意

如果開發人員想要讓 方法處理其他控制項複製案例,則可以在衍生類別中覆寫方法。 如需詳細資訊,請參閱一節。

加入新的動態控制項時,如果它是 WebPart 控制項,此方法會 CopyWebPart 傳回 控制項的新實例。 如果新增的控制項是一些其他類型的伺服器控制項 (,例如使用者控制項、自訂控制項或 ASP.NET 控制項) ,控制項已經由 Web 元件控制項集以 物件包裝 GenericWebPartCopyWebPart當方法遇到 GenericWebPart 控制項時,它會傳回控制項的新實例 GenericWebPart ,其中包裝了子控制項的新實例。

CopyWebPart當 方法建立要傳回之控制項的新複本時,它也會將所有屬性的值重設為預設值。 請注意,如果您想要保留可個人化屬性的值,並將其複製到新的控制項實例,您也應該呼叫 CopyPersonalizationState 方法。 方法執行 CopyWebPart 的最後一個步驟是呼叫 CreateDynamicWebPartID 方法,以取得控制項的新識別碼。

注意

因為 方法會取得複製控制項的新識別碼,所以您不應該依賴參考依原始識別碼新增至頁面的動態控制項。 相反地,您應該參考 方法所傳回之控制項的新實例。

給繼承者的注意事項

方法會宣告為 virtual ,讓開發人員可以繼承自 WebPartManager 類別、覆寫 方法,並提供可建立控制項複本的其他案例。 例如,方法可以選擇性地接收做為已序列化為 XML 檔案的控制項輸入。 如果存在 xml) ,方法可以還原序列化 XML (,然後呼叫基底方法來處理現有的案例,並傳回控制項的新實例 WebPart

適用於

另請參閱