[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 ("")]
}
[EditorBrowsable (EditorBrowsableState.Never)]
- [MonoTODO]
public override string Text
{
- get {
- throw new NotImplementedException ();
- }
- set {
- throw new NotImplementedException ();
- }
+ get { return string.Empty; }
+ set { throw new NotSupportedException (); }
}