[SupportsEventValidation]
public class BulletedList : ListControl, IPostBackEventHandler {
+ PostBackOptions postBackOptions;
+
[MonoTODO ("we are missing a new style enum, we should be using it")]
protected override void AddAttributesToRender (HtmlTextWriter writer)
{
break;
case BulletStyle.UpperRoman:
- writer.AddStyleAttribute (ListStyleType, "lower-roman");
+ writer.AddStyleAttribute (ListStyleType, "upper-roman");
isNumeric = true;
break;
base.AddAttributesToRender (writer);
}
- [MonoTODO ("new bool prop on ListItem: Enabled")]
protected virtual void RenderBulletText (ListItem item, int index, HtmlTextWriter writer)
{
switch (DisplayMode) {
case BulletedListDisplayMode.Text:
- //if (!item.Enabled) {
- // writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
- // writer.RenderBeginTag (HtmlTextWriterTag.Span);
- //}
+ if (!item.Enabled) {
+ writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
+ writer.RenderBeginTag (HtmlTextWriterTag.Span);
+ }
+
writer.Write (item.Text);
- //if (!item.Enabled)
- // writer.RenderEndTag ();
+
+ if (!item.Enabled)
+ writer.RenderEndTag ();
+
break;
case BulletedListDisplayMode.HyperLink:
- //if (Enabled && item.Enabled) {
- // writer.AddAttribute (HtmlTextWriterAttribute.Href, item.Value);
- // if (Target != "")
- // writer.AddAttribute(HtmlTextWriterAttribute.Target, this.Target);
- //
- //}
- //else
+ if (Enabled && item.Enabled) {
+ writer.AddAttribute (HtmlTextWriterAttribute.Href, item.Value);
+ if (Target != "")
+ writer.AddAttribute(HtmlTextWriterAttribute.Target, this.Target);
+
+ }
+ else
writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
writer.RenderBeginTag (HtmlTextWriterTag.A);
break;
case BulletedListDisplayMode.LinkButton:
- //if (Enabled && item.Enabled)
- writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackClientHyperlink (this, (index.ToString (CultureInfo.InvariantCulture))));
- //else
- // writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
+ if (Enabled && item.Enabled)
+ writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackEventReference (GetPostBackOptions (index.ToString (CultureInfo.InvariantCulture))));
+ else
+ writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
writer.RenderBeginTag (HtmlTextWriterTag.A);
writer.Write (item.Text);
writer.RenderEndTag ();
break;
}
}
+
+ PostBackOptions GetPostBackOptions (string argument) {
+ if (postBackOptions == null) {
+ postBackOptions = new PostBackOptions (this);
+ postBackOptions.ActionUrl = null;
+ postBackOptions.ValidationGroup = null;
+ postBackOptions.RequiresJavaScriptProtocol = true;
+ postBackOptions.ClientSubmit = true;
+ postBackOptions.PerformValidation = CausesValidation && Page != null && Page.AreValidatorsUplevel (ValidationGroup);
+ if (postBackOptions.PerformValidation)
+ postBackOptions.ValidationGroup = ValidationGroup;
+ }
+ postBackOptions.Argument = argument;
+ return postBackOptions;
+ }
protected internal override void RenderContents (HtmlTextWriter writer)
{
int idx = 0;
+#if NET_2_0
+ bool havePage = Page != null;
+#endif
foreach (ListItem i in Items) {
+#if NET_2_0
+ if (havePage)
+ Page.ClientScript.RegisterForEventValidation (this.UniqueID, i.Value.ToString ());
+#endif
writer.RenderBeginTag (HtmlTextWriterTag.Li);
this.RenderBulletText (i, idx ++, writer);
writer.RenderEndTag ();
}
}
- [MonoTODO]
- protected internal override void Render (HtmlTextWriter w)
+ protected internal override void Render (HtmlTextWriter writer)
{
- throw new NotImplementedException ();
+ base.Render (writer);
}
void IPostBackEventHandler.RaisePostBackEvent (string eventArgument)
RaisePostBackEvent (eventArgument);
}
- [MonoTODO ("ListControl has a CausesValidation prop in v1.2, we need to use it")]
protected virtual void RaisePostBackEvent (string eventArgument)
{
- //if (CausesValidation)
- // Page.Validate ();
+ if (CausesValidation)
+ Page.Validate (ValidationGroup);
this.OnClick (new BulletedListEventArgs (int.Parse (eventArgument, CultureInfo.InvariantCulture)));
}
[Bindable (false)]
[EditorBrowsableAttribute (EditorBrowsableState.Never)]
public override int SelectedIndex {
- get { return base.SelectedIndex; }
+ get { return -1; }
set { throw new NotSupportedException (String.Format ("This property is not supported in {0}", GetType ())); }
}
[EditorBrowsableAttribute (EditorBrowsableState.Never)]
public override ListItem SelectedItem {
- get { return base.SelectedItem; }
+ get { return null; }
}
[EditorBrowsable (EditorBrowsableState.Never)]
[Bindable (false)]
- [MonoTODO]
- public override string SelectedValue
+ public override string SelectedValue
{
- get {
- throw new NotImplementedException ();
- }
- set {
- throw new NotImplementedException ();
- }
+ get { return string.Empty; }
+ set { throw new NotSupportedException (); }
}
[DefaultValueAttribute ("")]
[EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
[UrlPropertyAttribute]
public virtual string BulletImageUrl {
- get {
- object ret = ViewState ["BulletImageUrl"];
- if (ret != null)
- return (string) ret;
-
- return "";
- }
- set {
- ViewState ["BulletImageUrl"] = value;
- }
+ get { return ViewState.GetString ("BulletImageUrl", ""); }
+ set { ViewState ["BulletImageUrl"] = value; }
}
[DefaultValueAttribute (BulletStyle.NotSet)]
public virtual BulletStyle BulletStyle {
- get {
- object ret = ViewState ["BulletStyle"];
- if (ret != null)
- return (BulletStyle) ret;
-
- return BulletStyle.NotSet;
- }
+ get { return (BulletStyle) ViewState.GetInt ("BulletStyle", (int) BulletStyle.NotSet); }
set {
if ((int) value < 0 || (int) value > 9)
throw new ArgumentOutOfRangeException ("value");
[DefaultValueAttribute (BulletedListDisplayMode.Text)]
public virtual BulletedListDisplayMode DisplayMode {
- get {
- object ret = ViewState ["DisplayMode"];
- if (ret != null)
- return (BulletedListDisplayMode) ret;
-
- return BulletedListDisplayMode.Text;
- }
+ get { return (BulletedListDisplayMode) ViewState.GetInt ("DisplayMode", (int)BulletedListDisplayMode.Text); }
set {
if ((int) value < 0 || (int) value > 2)
throw new ArgumentOutOfRangeException ("value");
[DefaultValueAttribute (1)]
public virtual int FirstBulletNumber {
- get {
- object ret = ViewState ["FirstBulletNumber"];
- if (ret != null)
- return (int) ret;
-
- return 1;
- }
- set {
- ViewState ["FirstBulletNumber"] = value;
- }
+ get { return ViewState.GetInt ("FirstBulletNumber", 1); }
+ set { ViewState ["FirstBulletNumber"] = value; }
}
[DefaultValueAttribute ("")]
[TypeConverter (typeof (TargetConverter))]
public virtual string Target {
- get {
- object ret = ViewState ["Target"];
- if (ret != null)
- return (string) ret;
-
- return "";
- }
- set {
- ViewState ["Target"] = value;
- }
+ get { return ViewState.GetString ("Target", ""); }
+ set { ViewState ["Target"] = value; }
}
[EditorBrowsable (EditorBrowsableState.Never)]
- [MonoTODO]
public override string Text
{
- get {
- throw new NotImplementedException ();
- }
- set {
- throw new NotImplementedException ();
- }
+ get { return string.Empty; }
+ set { throw new NotSupportedException (); }
}