Jag hittade ingen klockren lösning på att rendera en RadioButtonList som Unsorted list så jag skrev en egen Adapter för det. Den behåller alla funktioner från den vanliga listan men renderas som tables.TableToUnsortedListAdapter
Denna fungerar på alla kontroller som du vill ska rendera som unsorted list. Ligger det javascript eller andra funktioner på TD elementet kan dessa sluta att fungera dock.
<code>
public class TableToUnsortedListAdapter : ControlAdapter
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
System.Diagnostics.Debug.WriteLine(this.Control.GetType());
base.Render(new UnorderedListWriter(writer));
}
private class UnorderedListWriter : HtmlTextWriter
{
public UnorderedListWriter(TextWriter writer)
: base(writer) { }
public override void RenderBeginTag(HtmlTextWriterTag tagKey)
{
HtmlTextWriterTag render = tagKey;
if (tagKey == HtmlTextWriterTag.Table)
render = HtmlTextWriterTag.Ul;
else if (tagKey == HtmlTextWriterTag.Tr)
render = HtmlTextWriterTag.Li;
base.RenderBeginTag(render);
}
protected override bool OnTagRender(string name, HtmlTextWriterTag key)
{
if (key == HtmlTextWriterTag.Td)
return false;
else
return base.OnTagRender(name, key);
}
public override void AddAttribute(HtmlTextWriterAttribute key, string value)
{
if(key != HtmlTextWriterAttribute.Border && key != HtmlTextWriterAttribute.Cellpadding && key != HtmlTextWriterAttribute.Cellspacing)
base.AddAttribute(key, value);
}
}
}
</code>