Here a C# version of something I cranked out without testing... so good luck!
using System;
using System.Data;
using System.Collections;
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;
namespace YourNameHere
{
public class ImageAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
{
public DataListAdapter()
{
}
/// ///////////////////////////////////////////////////////////////////////////////
/// PROTECTED
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
RegisterScripts();
}
protected override void RenderBeginTag(HtmlTextWriter writer)
{
if ((Control != null) && (Control.Attributes["CssSelectorClass"] != null) && (Control.Attributes["CssSelectorClass"].Length > 0))
{
writer.WriteLine();
writer.WriteBeginTag("span");
writer.WriteAttribute("class", Control.Attributes["CssSelectorClass"]);
writer.Write(HtmlTextWriter.TagRightChar);
writer.Indent++;
}
writer.WriteLine();
writer.WriteBeginTag("span");
writer.WriteAttribute("class", "YourNameHere-Image");
writer.Write(HtmlTextWriter.TagRightChar);
}
protected override void RenderEndTag(HtmlTextWriter writer)
{
writer.WriteEndTag("span");
if ((Control != null) && (Control.Attributes["CssSelectorClass"] != null) && (Control.Attributes["CssSelectorClass"].Length > 0))
{
writer.Indent--;
writer.WriteLine();
writer.WriteEndTag("span");
}
writer.WriteLine();
}
protected override void RenderContents(HtmlTextWriter writer)
{
Image image = Control as Image;
if (image != null)
{
writer.Indent++;
writer.WriteBeginTag("img");
writer.WriteAttribute("src", Page.ResolveUrl(image.ImageUrl));
writer.WriteAttribute("alt", image.ToolTip);
writer.Write(HtmlTextWriter.SelfClosingTagEnd);
writer.Indent--;
writer.WriteLine();
}
}
/// ///////////////////////////////////////////////////////////////////////////////
/// PRIVATE
private void RegisterScripts()
{
}
}
}
In your .browser file you would need to add elements like these:
<adapter controlType="System.Web.UI.WebControls.Image" adapterType="YourNameHere.ImageAdapter" />
Then you would want to start customizing the code you find in RenderContents. Make sense?
Russ Helfand
Groovybits.com