簡體   English   中英

如何通過C#代碼定義內容控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM