This documentation is archived and is not being maintained.

ParseChildrenAttribute.ChildrenAsProperties Property

Gets or sets a value indicating whether child XML elements are parsed as though they are properties of a server control.

[Visual Basic]
Public Property ChildrenAsProperties As Boolean
[C#]
public bool ChildrenAsProperties {get; set;}
[C++]
public: __property bool get_ChildrenAsProperties();
public: __property void set_ChildrenAsProperties(bool);
[JScript]
public function get ChildrenAsProperties() : Boolean;
public function set ChildrenAsProperties(Boolean);

Property Value

true if the child elements are parsed as properties; otherwise, false. The default is true.

Remarks

If this property is set to false, the XML elements are parsed as child controls of the server control.

Example

[Visual Basic] 
' Use the ParseChildren attribute to set the ChildrenAsProperties
' and DefaultProperty properties. Using this constructor, the
' control parses all child controls as properties and must define
' a public property named Employees, which it declares as
' an ArrayList. Nested (child) elements must correspond to
' child elements of the Employees property or to other
' properties of the control.   
<ParseChildren(True, "Employees")>  _
Public Class CollectionPropertyControl
   Inherits Control
   Private _header As String
   Private _employees As New ArrayList()
   
   
   Public Property Header() As String
      Get
         Return _header
      End Get
      Set
         _header = value
      End Set
   End Property
   
   
   
   
   Public ReadOnly Property Employees() As ArrayList
      Get
         Return _employees
      End Get
   End Property
   
   ' Override the CreateChildControls method to 
   ' add child controls to the Employees property when this
   ' custom control is requested from a page.
   Protected Overrides Sub CreateChildControls()
      Dim label As New Label()
      label.Text = Header
      label.BackColor = System.Drawing.Color.Beige
      label.ForeColor = System.Drawing.Color.Red
      Controls.Add(label)
      Controls.Add(New LiteralControl("<BR> <BR>"))
      
      Dim table As New Table()
      Dim htr As New TableRow()
      
      Dim hcell1 As New TableHeaderCell()
      hcell1.Text = "Name"
      htr.Cells.Add(hcell1)
      
      Dim hcell2 As New TableHeaderCell()
      hcell2.Text = "Title"
      htr.Cells.Add(hcell2)
      
      Dim hcell3 As New TableHeaderCell()
      hcell3.Text = "Alias"
      htr.Cells.Add(hcell3)
      table.Rows.Add(htr)
      
      table.BorderWidth = Unit.Pixel(2)
      table.BackColor = System.Drawing.Color.Beige
      table.ForeColor = System.Drawing.Color.Red
      Dim employee As Employee
      For Each employee In  Employees
         Dim tr As New TableRow()
         
         Dim cell1 As New TableCell()
         cell1.Text = employee.Name
         tr.Cells.Add(cell1)
         
         Dim cell2 As New TableCell()
         cell2.Text = employee.Title
         tr.Cells.Add(cell2)
         
         Dim cell3 As New TableCell()
         cell3.Text = employee.Alias
         tr.Cells.Add(cell3)
         
         table.Rows.Add(tr)
      Next employee
      Controls.Add(table)
   End Sub 'CreateChildControls 
End Class 'CollectionPropertyControl
End Namespace 'ParseChildrenVBSamples

[C#] 
// Use the ParseChildren attribute to set the ChildrenAsProperties
// and DefaultProperty properties. Using this constructor, the
// control parses all child controls as properties and must define
// a public property named Employees, which it declares as
// an ArrayList. Nested (child) elements must correspond to
// child elements of the Employees property or to other
// properties of the control.   
[ParseChildren(true, "Employees")]
public class CollectionPropertyControl : Control
{  
   private String header;
   private ArrayList employees = new ArrayList();
   
   public String Header
   {
      get
      {
         return header;
      }
      set
      {
         header = value;
      }
   }


   
   public ArrayList Employees
   {
      get 
      {
         return employees;
      }
   }
   // Override the CreateChildControls method to 
   // add child controls to the Employees property when this
   // custom control is requested from a page.
   protected override void CreateChildControls()
   {
      Label label = new Label();
      label.Text = Header;
      label.BackColor = System.Drawing.Color.Beige;
      label.ForeColor = System.Drawing.Color.Red;
      Controls.Add(label);
      Controls.Add(new LiteralControl("<BR> <BR>"));

      Table table = new Table();
      TableRow htr = new TableRow();

      TableHeaderCell hcell1 = new TableHeaderCell();    
      hcell1.Text = "Name";
      htr.Cells.Add(hcell1);

      TableHeaderCell hcell2 = new TableHeaderCell();
      hcell2.Text = "Title";
      htr.Cells.Add(hcell2);
      
      TableHeaderCell hcell3 = new TableHeaderCell();
      hcell3.Text = "Alias";
      htr.Cells.Add(hcell3);
      table.Rows.Add(htr);

      table.BorderWidth = 2;
      table.BackColor = System.Drawing.Color.Beige;
      table.ForeColor = System.Drawing.Color.Red;
      foreach (Employee employee in Employees)
      {
         TableRow tr = new TableRow();

         TableCell cell1 = new TableCell();
         cell1.Text = employee.Name;
         tr.Cells.Add(cell1);
         
         TableCell cell2 = new TableCell();
         cell2.Text = employee.Title;
         tr.Cells.Add(cell2);
         
         TableCell cell3 = new TableCell();
         cell3.Text = employee.Alias;
         tr.Cells.Add(cell3);
         
         table.Rows.Add(tr);
      }
      Controls.Add(table);
      
   }
}

[C++] 
// Use the ParseChildren attribute to set the ChildrenAsProperties
// and DefaultProperty properties. Using this constructor, the
// control parses all child controls as properties and must define
// a public property named Employees, which it declares as
// an ArrayList. Nested (child) elements must correspond to
// child elements of the Employees property or to other
// properties of the control.
[ParseChildren(true, S"Employees")]
public __gc class CollectionPropertyControl : public Control {
private:
   String*  header;
   ArrayList* employees;
public:
   CollectionPropertyControl()
   {
      employees = new ArrayList();
   }
   __property String* get_Header() {
      return header;
   }
   __property void set_Header(String* value) {
      header = value;
   }

   __property ArrayList* get_Employees() {
      return employees;
   }

   // Override the CreateChildControls method to
   // add child controls to the Employees property when this
   // custom control is requested from a page.
protected:
   void CreateChildControls() {
      Label* label = new Label();
      label->Text = Header;
      label->BackColor = System::Drawing::Color::Beige;
      label->ForeColor = System::Drawing::Color::Red;
      Controls->Add(label);
      Controls->Add(new LiteralControl(S"<BR> <BR>"));

      Table* table = new Table();
      TableRow* htr = new TableRow();

      TableHeaderCell* hcell1 = new TableHeaderCell();
      hcell1->Text = S"Name";
      htr->Cells->Add(hcell1);

      TableHeaderCell* hcell2 = new TableHeaderCell();
      hcell2->Text = S"Title";
      htr->Cells->Add(hcell2);

      TableHeaderCell* hcell3 = new TableHeaderCell();
      hcell3->Text = S"Alias";
      htr->Cells->Add(hcell3);
      table->Rows->Add(htr);

      table->BorderWidth = 2;
      table->BackColor = System::Drawing::Color::Beige;
      table->ForeColor = System::Drawing::Color::Red;
      IEnumerator* myEnum = Employees->GetEnumerator();
      while (myEnum->MoveNext()) {
         Employee* employee = __try_cast<Employee*>(myEnum->Current);

         TableRow* tr = new TableRow();

         TableCell* cell1 = new TableCell();
         cell1->Text = employee->Name;
         tr->Cells->Add(cell1);

         TableCell* cell2 = new TableCell();
         cell2->Text = employee->Title;
         tr->Cells->Add(cell2);

         TableCell* cell3 = new TableCell();
         cell3->Text = employee->Alias;
         tr->Cells->Add(cell3);

         table->Rows->Add(tr);
      }
      Controls->Add(table);

   }
};

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 2000, Windows XP Professional, Windows Server 2003 family

See Also

ParseChildrenAttribute Class | ParseChildrenAttribute Members | System.Web.UI Namespace | Using ParseChildrenAttribute

Show: