The DataList control is a data-bound list that is configured through templates in the .aspx file. It does not provide quite the extent of features found in the DataGrid control. It does provide support for automatic selection (by setting the SelectedIndex property) and editing (by setting the EditItemIndex property), but not for automatic paging or sorting. Also, there is no support for default column types or automatically generated rows, so you will always need to specify at least an ItemTemplate. Templates for the DataList are bracketed inside the appropriate template tag (like <ItemTemplate>) and may contain a data-binding expression (for example, <%# Container.DataItem("Description") %>). You can also add HTML tags or tags for ASP.NET controls to these templates manually for a customized appearance.
You can use the AlternatingItemTemplate property to allow items to alternate between two styles, the EditItemTemplate to specify how items will appear when they are being edited, and the SelectedItemTemplate to specify how items will appear when they are selected. The HeaderTemplate, FooterTemplate, and SeparatorTemplate allow you specify layout and content for special rows. The DataList has a number of properties that allow you to control its appearance. You can set TableItemStyle objects for various properties, including footers, headers (used automatically for column titles), and items. (The corresponding DataList properties end with the word "Style.") You can also use the ShowHeader and ShowFooter properties to configure whether headers and footers will be displayed.
public class DataList : BaseDataList, System.Web.UI.INamingContainer, IRepeatInfoUser { // Public Constructors public DataList( ); // Public Static Fields public const string CancelCommandName; // =Cancel public const string DeleteCommandName; // =Delete public const string EditCommandName; // =Edit public const string SelectCommandName; // =Select public const string UpdateCommandName; // =Update // Public Instance Properties public virtual TableItemStyle AlternatingItemStyle{get; } public virtual ITemplate AlternatingItemTemplate{set; get; } public virtual int EditItemIndex{set; get; } public virtual TableItemStyle EditItemStyle{get; } public virtual ITemplate EditItemTemplate{set; get; } public virtual bool ExtractTemplateRows{set; get; } public virtual TableItemStyle FooterStyle{get; } public virtual ITemplate FooterTemplate{set; get; } public override GridLines GridLines{set; get; } // overrides BaseDataList public virtual TableItemStyle HeaderStyle{get; } public virtual ITemplate HeaderTemplate{set; get; } public virtual DataListItemCollection Items{get; } public virtual TableItemStyle ItemStyle{get; } public virtual ITemplate ItemTemplate{set; get; } public virtual int RepeatColumns{set; get; } public virtual RepeatDirection RepeatDirection{set; get; } public virtual RepeatLayout RepeatLayout{set; get; } public virtual int SelectedIndex{set; get; } public virtual DataListItem SelectedItem{get; } public virtual TableItemStyle SelectedItemStyle{get; } public virtual ITemplate SelectedItemTemplate{set; get; } public virtual TableItemStyle SeparatorStyle{get; } public virtual ITemplate SeparatorTemplate{set; get; } public virtual bool ShowFooter{set; get; } public virtual bool ShowHeader{set; get; } // Protected Instance Methods protected override void CreateControlHierarchy(bool useDataSource); // overrides BaseDataList protected override Style CreateControlStyle( ); // overrides WebControl protected virtual DataListItem CreateItem(int itemIndex, ListItemType itemType); protected virtual void InitializeItem(DataListItem item); protected override void LoadViewState(object savedState); // overrides WebControl protected override bool OnBubbleEvent(object source, EventArgs e);// overrides System.Web.UI.Control protected virtual void OnCancelCommand(DataListCommandEventArgs e); protected virtual void OnDeleteCommand(DataListCommandEventArgs e); protected virtual void OnEditCommand(DataListCommandEventArgs e); protected virtual void OnItemCommand( DataListCommandEventArgs e); protected virtual void OnItemCreated(DataListItemEventArgs e); protected virtual void OnItemDataBound(DataListItemEventArgs e); protected virtual void OnUpdateCommand(DataListCommandEventArgs e); protected override void PrepareControlHierarchy( ); // overrides BaseDataList protected override void RenderContents(System.Web.UI.HtmlTextWriter writer); // overrides WebControl protected override object SaveViewState( ); // overrides WebControl protected override void TrackViewState( ); // overrides WebControl // Events public event DataListCommandEventHandler CancelCommand; public event DataListCommandEventHandler DeleteCommand; public event DataListCommandEventHandler EditCommand; public event DataListCommandEventHandler ItemCommand; public event DataListItemEventHandler ItemCreated; public event DataListItemEventHandler ItemDataBound; public event DataListCommandEventHandler UpdateCommand; }