[英]How to define a Content Control through C# code
我正在編寫一個Webpart並試圖更新瀏覽器標題...因此,我進入mywebpart.ascx添加了以下內容:
<asp:Content ID="contentPageTitle" ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
<%= SPContext.Current.Site.OpenWeb().Title %>
</asp:Content>
然后出現此錯誤:內容控件必須是內容頁或引用母版頁的嵌套母版頁中的頂級控件。
因此,我正在嘗試通過在mywebpart.cs中以編程方式執行此操作:
Content content = new Content();
content.ContentPlaceHolderID = "PlaceHolderPageTitle";
我現在需要輸入以下內容:SPContext.Current.Site.OpenWeb()。Title
Content控件中的哪個屬性允許我執行此操作? 如果有更好的方法可以做到這一點,我也很開放。 謝謝。
不幸的是,您不能在用戶控件中放置內容控件。 如錯誤消息所示,內容控件必須是頁面或母版頁中的頂級控件,並且不能屬於任何其他類型的控件。
另一種方法是自定義頁面布局或母版頁以包含要提供的邏輯。
如果您對內容控件的ID有一定的保證(請注意,不是ContentPlaceholderID),那么您可以像這樣與內容控件進行交互:
var content = Page.FindControl("contentPageTitle");
content.Controls.Add(new LiteralControl("Hello, World!"));
-
OpenWeb()
,請確保正確處理用OpenWeb()
打開的任何SPWeb,否則您可能會遇到內存管理問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.