New tests.
[mono.git] / mcs / class / System.Web / System.Web.UI.HtmlControls / HtmlTable.cs
index ae59100c32d28c03a793a85ff6ba8175ae7d8740..7ae378a0bc9bbbac34e1c3f1b062638fa66b86fc 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Sebastien Pouliot  <sebastien@ximian.com>
 //
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 using System.ComponentModel;
 using System.Globalization;
 using System.Security.Permissions;
+using System.Web.Util;
 
-namespace System.Web.UI.HtmlControls {
-
+namespace System.Web.UI.HtmlControls
+{
        // CAS
        [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        [AspNetHostingPermission (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        // attributes
-#if NET_2_0
-       [ParseChildren (true, "Rows", ChildControlType = typeof(Control))]
-#else
-       [ParseChildren (true, "Rows")]
-#endif         
-       public class HtmlTable : HtmlContainerControl {
-
-               private HtmlTableRowCollection _rows;
-
+       [ParseChildren (true, "Rows")]  
+       public class HtmlTable : HtmlContainerControl
+       {
+               HtmlTableRowCollection _rows;
 
                public HtmlTable ()
                        : base ("table")
                {
                }
 
-
                [DefaultValue ("")]
                [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
                [WebSysDescription("")]
@@ -99,7 +94,7 @@ namespace System.Web.UI.HtmlControls {
                                if (value == -1)
                                        Attributes.Remove ("border");
                                else
-                                       Attributes ["border"] = value.ToString (CultureInfo.InvariantCulture);
+                                       Attributes ["border"] = value.ToString (Helpers.InvariantCulture);
                        }
                }
 
@@ -133,7 +128,7 @@ namespace System.Web.UI.HtmlControls {
                                if (value == -1)
                                        Attributes.Remove ("cellpadding");
                                else
-                                       Attributes ["cellpadding"] = value.ToString (CultureInfo.InvariantCulture);
+                                       Attributes ["cellpadding"] = value.ToString (Helpers.InvariantCulture);
                        }
                }
 
@@ -150,7 +145,7 @@ namespace System.Web.UI.HtmlControls {
                                if (value == -1)
                                        Attributes.Remove ("cellspacing");
                                else
-                                       Attributes ["cellspacing"] = value.ToString (CultureInfo.InvariantCulture);
+                                       Attributes ["cellspacing"] = value.ToString (Helpers.InvariantCulture);
                        }
                }
 
@@ -214,21 +209,13 @@ namespace System.Web.UI.HtmlControls {
                        return new HtmlTableRowControlCollection (this);
                }
 
-#if NET_2_0
-               protected internal
-#else          
-               protected
-#endif         
-               override void RenderChildren (HtmlTextWriter writer)
+               protected internal override void RenderChildren (HtmlTextWriter writer)
                {
-                       int n = (_rows == null) ? 0 : _rows.Count;
-                       if (n > 0) {
+                       if (HasControls ()) {
                                writer.Indent++;
-                               for (int i=0; i < n; i++) {
-                                       writer.WriteLine ();
-                                       _rows [i].RenderControl (writer);
-                               }
+                               base.RenderChildren (writer);
                                writer.Indent--;
+                               writer.WriteLine ();
                        }
                }