WebPartManager.CopyWebPart(WebPart) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
由 Web Parts 控制項集用於建立伺服器控制項的副本 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 A 會被加入頁面。
備註
你不能直接從程式碼呼叫這個 CopyWebPart 方法。 此方法由控制項內部 WebPartManager 呼叫,作為新增動態 WebPart 或伺服器控制項到頁面的過程之一部分。 動態控制項是以程式化方式或透過網頁部分使用者介面(UI)加入頁面,例如使用者從控制項目錄中新增控制項,而非靜態控制項,後者直接在頁面標記中宣告。
Note
若開發者希望啟用該方法以處理額外的控制複製情境,則可在衍生類別中覆寫此方法。 詳情請參閱「繼承者筆記」章節。
當新增動態控制項時,若是 WebPart 控制項, CopyWebPart 方法會回傳該控制項的新實例。 若新增控制項為其他類型的伺服器控制(如使用者控制項、自訂控制項或 ASP.NET 控制項),該控制項將已被 Web Parts 控制集包裹為 GenericWebPart 物件。 當 CopyWebPart 方法遇到控制 GenericWebPart 項時,會回傳一個控制項的新實例 GenericWebPart ,並包裹著一個子控制項的新實例。
當 CopyWebPart 該方法建立新的控制項副本以回傳時,也會將所有屬性的值重設為預設值。 請注意,如果你想保留可個人化屬性的值並將其複製到新的控制實例,也應該呼叫該 CopyPersonalizationState 方法。 方法執行的最後一步 CopyWebPart 是呼叫該 CreateDynamicWebPartID 方法以取得控制項的新 ID。
Note
由於該方法會為複製的控制項取得新的 ID,因此不應依賴以原始 ID 加入頁面的動態控制項作為參考。 相反地,你應該參考該方法回傳的新控制實例。
給繼承者的注意事項
此方法宣告為 virtual ,讓開發者能繼承該 WebPartManager 類別、覆寫方法,並提供額外情境以建立控制項的複製。 例如,該方法可選擇性地接收已序列化成 XML 檔案的控制項作為輸入。 該方法可以反序列化 XML(若存在),然後呼叫基礎方法處理現有案例並回傳新的控制實例 WebPart 。