Mega Code Archive

 
Categories / ASP.Net / User Control And Master Page
 

Bindable user control (C#)

<%@ Page Language="c#" %> <%@ Register TagPrefix="Control" Namespace="Control" Assembly="Control" %> <script runat="server">   void Page_Load(object sender, EventArgs e)   {     listControl.DataSource = new String[] {"Test 1", "Test 2", "Test 3"};     listControl.DataBind();   } </script> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  <html> <head> <title>Default</title> </head> <body> <Control:CustomBulletedList  id="listControl" runat="server"/> </body> </html> File: Control.cs using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Collections; using System.Text; namespace Control {   [DefaultProperty("DataSource"),   ToolboxData("<{0}:CustomBulletedList runat=\"server\"></{0}:CustomBulletedList>")]   public class CustomBulletedList : System.Web.UI.WebControls.WebControl   {     private StringBuilder _html  = new StringBuilder();     private IEnumerable  _dataSource;     [Bindable(true),     Category("Data"),     DefaultValue(null),     Description("The data source used to build up the bulleted list."),     DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]     public IEnumerable DataSource {       get {         return _dataSource;       }       set {         _dataSource = value;       }     }     private void CreateBulletedList()     {       IEnumerable dataSource = null;       try {         dataSource = this._dataSource;       } catch {         dataSource = null;       }       if (dataSource != null)       {         _html.Append("<ul>");         foreach (object dataObject in dataSource)         {           _html.Append("<li>");           _html.Append(dataObject.ToString());           _html.Append("</li>");         }         _html.Append("</ul>");       }     }     public override void DataBind()     {       base.OnDataBinding(EventArgs.Empty);       CreateBulletedList();     }     protected override void Render(HtmlTextWriter output)     {       output.Write(_html);     }   } }