2010-03-12 Jb Evain <jbevain@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / ListBox.cs
index 6ae212b6d071e70c5fbad2bc9669ca1e429c455c..2586a1ec204884683e9cd2d9dc9a8055c4c6d0a9 100644 (file)
@@ -32,6 +32,7 @@ using System.Drawing;
 using System.Globalization;
 using System.Collections.Specialized;
 using System.Security.Permissions;
+using System.Web.Util;
 
 namespace System.Web.UI.WebControls {
 
@@ -147,7 +148,7 @@ namespace System.Web.UI.WebControls {
                        if (AutoPostBack) {
 #if NET_2_0
                                string onchange = Page.ClientScript.GetPostBackEventReference (GetPostBackOptions (), true);
-                               onchange = String.Format ("setTimeout('{0}', 0)", onchange.Replace ("\\", "\\\\").Replace ("'", "\\'"));
+                               onchange = String.Concat ("setTimeout('", onchange.Replace ("\\", "\\\\").Replace ("'", "\\'"), "', 0)");
                                writer.AddAttribute (HtmlTextWriterAttribute.Onchange, BuildScriptAttribute ("onchange", onchange));
 #else
                                writer.AddAttribute (HtmlTextWriterAttribute.Onchange,
@@ -160,7 +161,7 @@ namespace System.Web.UI.WebControls {
                                writer.AddAttribute (HtmlTextWriterAttribute.Multiple,
                                                "multiple", false);
                        writer.AddAttribute (HtmlTextWriterAttribute.Size,
-                                        Rows.ToString (CultureInfo.InvariantCulture));
+                                        Rows.ToString (Helpers.InvariantCulture));
                        
                        base.AddAttributesToRender (writer);
                }
@@ -170,7 +171,7 @@ namespace System.Web.UI.WebControls {
                        PostBackOptions options = new PostBackOptions (this);
                        options.ActionUrl = null;
                        options.ValidationGroup = null;
-                       options.Argument = "";
+                       options.Argument = String.Empty;
                        options.RequiresJavaScriptProtocol = false;
                        options.ClientSubmit = true;
                        options.PerformValidation = CausesValidation && Page != null && Page.AreValidatorsUplevel (ValidationGroup);
@@ -185,16 +186,15 @@ namespace System.Web.UI.WebControls {
                protected override void RenderContents (HtmlTextWriter writer)
                {
                        foreach (ListItem item in Items) {
-                               writer.WriteBeginTag ("option");
                                if (item.Selected) {
-                                       writer.WriteAttribute ("selected", "selected", false);
+                                       writer.AddAttribute (HtmlTextWriterAttribute.Selected, "selected", false);
                                }
-                               writer.WriteAttribute ("value", item.Value, true);
-
-                               writer.Write (">");
+                               writer.AddAttribute (HtmlTextWriterAttribute.Value, item.Value, true);
+                               writer.RenderBeginTag (HtmlTextWriterTag.Option);
+                               
                                string encoded = HttpUtility.HtmlEncode (item.Text);
                                writer.Write (encoded);
-                               writer.WriteEndTag ("option");
+                               writer.RenderEndTag ();
                                writer.WriteLine ();
                        }
                }
@@ -226,6 +226,9 @@ namespace System.Web.UI.WebControls {
                                SelectedIndex = -1;
                                return (prev_index != -1);
                        }
+#if NET_2_0
+                       ValidateEvent (UniqueID, values [0]);
+#endif
 
                        if (SelectionMode == ListSelectionMode.Single)
                                return SelectSingle (values);