使用 ParseChildrenAttribute
ParseChildrenAttribute 是一個可套用至類別層級的 .NET Framework 中繼資料屬性。它使控制項可以指定當 ASP.NET 網頁上的控制項是使用宣告式時,網頁剖析器如何解譯控制項標記內的巢狀項目。ParseChildrenAttribute 可以使用對應至布林 (Boolean) 旗標和控制項預設屬性的命名引數來建立。如需這個屬性語法的詳細資訊,請參閱 System.Web.UI.ParseChildrenAttribute。
下列範例說明如何將 ParseChildrenAttribute 套用至控制項。
[ ParseChildren(ChildrenAsProperties = true)]
// Or apply as [ ParseChildren(true)].
public class TemplatedFirstControl : Control, INamingContainer {...}
[Visual Basic]
<ParseChildren(ChildrenAsProperties := True)> _
Public Class TemplatedFirstControl
Inherits Control
Implements INamingContainer
...
End Class
如需標記上 ParseChildrenAttribute 的控制項範例資訊,請參閱樣板化的控制項範例。當網頁上的 TemplatedFirstControl
是使用宣告式時,其控制項標記內的子項目 (立即子系) 即必須對應至 TemplatedFirstControl
的屬性,如下列範例所示。
<%-- FirstTemplate is a property of TemplatedFirstControl. --%>
<%-- Custom is the tag prefix for TemplatedFirstControl on the page as defined in the <%@ Register %> directive. --%>
<Custom:TemplatedFirstControl id = "First" Text= "The time on the server is " runat=server>
<FirstTemplate>
<h3><font face="Verdana" color = "red"><%# Container.Text %> <%# Container.DateTime %>
</font></h3>
</FirstTemplate>
</Custom:TemplatedFirstControl>
下列表格將說明 ParseChildrenAttribute 的使用方式。
屬性使用方式 | 說明 |
---|---|
ParseChildrenAttribute(ChildrenAsProperties = true)
或 ParseChildren(true) |
巢狀 (子) 項目必須對應至控制項的屬性。控制項標記之間的其他 (非屬性) 項目和常值 (Literal) 文字將產生一個剖析器錯誤。
範例:Repeater 和其他的資料繫結 (Data-Bound) 控制項。 |
ParseChildrenAttribute(ChildrenAsProperties = false)
或 ParseChildrenAttribute(false) 或 ParseChildrenAttribute 未套用至控制項。 |
巢狀 (子) 項目必須對應至 ASP.NET 伺服器控制項。網頁剖析器會建立子控制項並呼叫控制項上的 IParserAccessor.AddParsedSubObject。AddParsedSubObject 的預設實作會將子控制項加入至控制項的 Controls 集合。網頁剖析器會將標記之間的常值文字剖析為 LiteralControl 的執行個體。
範例:Panel。 |
ParseChildrenAttribute (ChildrenAsProperties = true, DefaultProperty = "PropertyName")
或 ParseChildrenAttribute(true, "PropertyName") |
控制項必須定義一個名為 PropertyName 的公用 (Public) 屬性。巢狀 (子) 項目必須對應 PropertyName 屬性的子項目。
範例:HtmlTable、HtmlTableRow。 如需範例的資訊,請參閱 ParseChildrenAttribute 範例。 |
ParseChildrenAttribute(false, "PropertyName") | 網頁剖析器 (Parser) 會將這個使用方法更新為 ParseChildrenAttribute(false)。 |
注意 System.Web.UI.WebControls.WebControl 是標記為 ParseChildren(true)。衍生自 WebControl 的自訂控制項將繼承這個屬性標記。您可以使用不同的引數重新套用屬性,來覆寫已繼承的屬性。
注意 如果在 ParseChildrenAttribute 之外再套用 ControlBuilderAttribute,即可以修改表格中所描述的剖析邏輯。
請參閱
控制項剖析、ParseChildrenAttribute 和控制項產生器 | ParseChildrenAttribute 範例