Here is an extension to the ComboCox control to give your ListItems an Icon. The JavaScript is part of the ExtJs wiki example for illustrating how to extend Ext2 classes (http://extjs.com/learn/Tutorial:Extending_Ext2_Class).

To use, extract the attachment to the ..\Coolite\Coolite.Ext.Web\Ext\Extensions path of the Coolite Toolkit source. In visual studio, add the folder under the respective folder. Ensure that the JS and CSS resources are configured as embedded resources. Then recompile the toolkit.

Here is an example:

<%@ Page Language="C#" %>

<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IconCombo Test</title>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Ext.IsAjaxRequest)
            {
                SM1.RegisterIcon(Icon.FlagUs);
                SM1.RegisterIcon(Icon.FlagCa);
                SM1.RegisterIcon(Icon.FlagRu);
                SM1.RegisterIcon(Icon.FlagDe);
                SM1.RegisterIcon(Icon.FlagIt);
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">

        <ext:ScriptManager runat="server" ID="SM1" ScriptMode="Debug" />

        <ext:IconCombo 
            ID="IconComboTest" 
            TriggerAction="All"
            Mode="Local"
            Editable="false"
            ForceSelection="true"
            Select&#111;nfocus="true"
            EmptyText="Select a country"
            runat="server">
            <Items>
                <ext:IconListItem Text="United States" Icon="FlagUs" Value="US" />
                <ext:IconListItem Text="Canada" Icon="FlagCa" Value="CA" />
                <ext:IconListItem Text="Russia" Icon="FlagRu" Value="RU" />
                <ext:IconListItem Text="Germany" Icon="FlagDe" Value="DE" />
                <ext:IconListItem Text="Italy" Icon="FlagIt" Value="IT" />
            </Items>
        </ext:IconCombo>
    </form>
</body>
</html>
One thing that I would like to add is functionality to automagically register the icons to the scriptmanager, but no success in my initial attempts. Also, I feel that I had to do a little too much work to extend the framework. It was impossible for me to extend from ComboBoxBase class because the underlying Items collection is locked into using the ListItem class. Maybe the Coolite Team can look into a solution for this; I'm thinking generics.

-MC