共用方式為


使用 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.AddParsedSubObjectAddParsedSubObject 的預設實作會將子控制項加入至控制項的 Controls 集合。網頁剖析器會將標記之間的常值文字剖析為 LiteralControl 的執行個體。

範例:Panel

ParseChildrenAttribute (ChildrenAsProperties = true, DefaultProperty = "PropertyName")

ParseChildrenAttribute(true, "PropertyName")

控制項必須定義一個名為 PropertyName 的公用 (Public) 屬性。巢狀 (子) 項目必須對應 PropertyName 屬性的子項目。

範例:HtmlTableHtmlTableRow

如需範例的資訊,請參閱 ParseChildrenAttribute 範例

ParseChildrenAttribute(false, "PropertyName") 網頁剖析器 (Parser) 會將這個使用方法更新為 ParseChildrenAttribute(false)

注意 System.Web.UI.WebControls.WebControl 是標記為 ParseChildren(true)。衍生自 WebControl 的自訂控制項將繼承這個屬性標記。您可以使用不同的引數重新套用屬性,來覆寫已繼承的屬性。

注意 如果在 ParseChildrenAttribute 之外再套用 ControlBuilderAttribute,即可以修改表格中所描述的剖析邏輯。

請參閱

控制項剖析、ParseChildrenAttribute 和控制項產生器 | ParseChildrenAttribute 範例