// Copyright � 2007 Jeffrey Bazinet, http://www.vwd-cms.com/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
namespace VwdCms
{
public class TitleCheckBoxList : CheckBoxList
{
public const string TitleValue = "###title###";
public const string SpacerValue = "###spacer###";
private Unit _titleWidth;
public Unit TitleWidth
{
get { return _titleWidth; }
set { _titleWidth = value; }
}
protected override void RenderItem(ListItemType itemType, int repeatIndex,
RepeatInfo repeatInfo, HtmlTextWriter writer)
{
ListItem itm = this.Items[repeatIndex];
string val = itm.Value;
if (val == TitleValue || val == SpacerValue)
{
if (repeatIndex == 0)
{
StringWriter sw = new StringWriter();
HtmlTextWriter dummyWriter = new HtmlTextWriter(sw);
base.RenderItem(itemType, repeatIndex, repeatInfo, dummyWriter);
}
if (val == TitleValue)
{
Label lbl = new Label();
lbl.ID = this.ClientID + this.ClientIDSeparator + repeatIndex.ToString();
lbl.Font.CopyFrom(this.Font);
lbl.Font.Bold = true;
lbl.Text = itm.Text;
if (this.TitleWidth != null)
{
lbl.Width = this.TitleWidth;
}
lbl.RenderControl(writer);
}
else if (val == SpacerValue)
{
writer.Write(HtmlTextWriter.SpaceChar);
}
}
else
{
base.RenderItem(itemType, repeatIndex, repeatInfo, writer);
}
}
}
}