/// <summary>
        /// Mounts the data list.
        /// </summary>
        /// <returns></returns>
        private ICollection mountDataList()
        {
            EnhancedLinkDB enhancedLinks = new EnhancedLinkDB();
            SqlDataReader  dr            = enhancedLinks.GetEnhancedLinks(ModuleID, Version);
            DataTable      dt            = new DataTable();

            dt.Columns.Add(new DataColumn("TextField", typeof(string)));
            dt.Columns.Add(new DataColumn("ValueField", typeof(string)));
            if (IsEditable)
            {
                dt.Rows.Add(CreateRow(General.GetString("ENHANCEDLINKS_EDITLINK", "Edit Link", null), string.Empty, dt));
            }
            else
            {
                dt.Rows.Add(CreateRow(ModuleTitle.Title, string.Empty, dt));
            }
            while (dr.Read())
            {
                string linkStr = (string)dr["Url"];
                if (!linkStr.Equals("SEPARATOR"))
                {
                    dt.Rows.Add(CreateRow((string)dr["Title"], dr["ItemID"].ToString(), dt));
                }
            }
            DataView dv = new DataView(dt);

            return(dv);
        }
        /// <summary>
        /// The Page_Load event handler on this User Control is used to
        /// obtain a DataReader of link information from the EnhancedLinks
        /// table, and then databind the results to a templated DataList
        /// server control.  It uses the Rainbow.EnhancedLinkDB()
        /// data component to encapsulate all data functionality.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        private void Page_Load(object sender, EventArgs e)
        {
            string iconContainer = Settings["ENHANCEDLINKS_ICONPATH"].ToString();
            string defaultImage  = Settings["ENHANCEDLINKS_DEFAULTIMAGE"].ToString();
            bool   dropDownList  = Settings["ENHANCEDLINKS_SWITCHERTYPES"].ToString().Equals("1");
            bool   doExpandAll   = bool.Parse(Settings["ENHANCEDLINKS_EXPANDALL"].ToString());
            int    maxColumns    = int.Parse(Settings["ENHANCEDLINKS_MAXCOLUMS"].ToString());
            int    actualColumn  = 1;

            if (dropDownList)
            {
                if (!Page.IsPostBack)
                {
                    results.Visible         = false;
                    cboLinks.Visible        = true;
                    cboLinks.DataSource     = mountDataList();
                    cboLinks.DataTextField  = "TextField";
                    cboLinks.DataValueField = "ValueField";
                    cboLinks.SelectedIndex  = 0;
                    cboLinks.DataBind();
                }
                return;
            }
            int            itemCount     = 0;
            EnhancedLinkDB enhancedLinks = new EnhancedLinkDB();
            StringBuilder  listStr       = new StringBuilder();

            listStr.Append("<table border=0 cellspacing=5 cellpadding=0>");
            SqlDataReader dr = enhancedLinks.GetEnhancedLinks(ModuleID, Version);

            listStr.Append("<tr>");

            while (dr.Read())
            {
                string imageStr    = (string)dr["ImageURL"];
                string linkStr     = (string)dr["Url"];
                string titleStr    = (string)dr["Title"];
                string descStr     = (string)dr["Description"];
                string targetStr   = (string)dr["Target"];
                bool   isSeparator = linkStr.Equals("SEPARATOR");

                if (isSeparator)
                {
                    listStr.Append("<td>&nbsp;</td></tr><tr>");
                    actualColumn = 1;
                }
                if (IsEditable)
                {
                    listStr.Append("<td><a href=\"" + GetLinkUrl(dr["ItemID"].ToString(), linkStr, true) +
                                   "\"><img src='" + CurrentTheme.GetImage("Buttons_Edit", "Edit.gif").ImageUrl +
                                   "' border=0></a>&nbsp;</td>");
                }
                string auxImage;
                if ((imageStr != null) && (imageStr.Length > 0))
                {
                    auxImage = portalSettings.PortalFullPath + "/" + iconContainer + "/" + imageStr;
                }
                else if ((defaultImage != null) && (defaultImage.Length > 0))
                {
                    auxImage = portalSettings.PortalFullPath + "/" + iconContainer + "/" + defaultImage;
                }
                else
                {
                    auxImage = CurrentTheme.GetImage("NavLink", "navlink.gif").ImageUrl;
                }
                string altStr = string.Empty;
                if ((descStr != null) && (descStr.Length > 0))
                {
                    altStr = " title='" + descStr + "'";
                }
                targetStr = " target='" + targetStr + "'";
                listStr.Append("<td valign=center align=center><img src='" + auxImage + "' border=0></td>");
                if (isSeparator)
                {
                    listStr.Append("<td valign=center><a class='EnhancedTitle'>" + titleStr +
                                   "</a></td></tr><tr><td colspan=40><hr></td></tr><tr>");
                }
                else
                {
                    listStr.Append("<td valign=center><a class='EnhancedLink' href='" + GetLinkUrl(null, linkStr, false) +
                                   "'" + targetStr + altStr + ">" + titleStr + "</a>");
                    if ((doExpandAll) && (descStr != null) && (descStr.Length > 0))
                    {
                        listStr.Append("<br>" + "<a class='EnhancedDescription'>" + descStr + "</a>");
                    }
                }
                if (!isSeparator)
                {
                    listStr.Append("</td>");
                    if (actualColumn < maxColumns)
                    {
                        listStr.Append("<td>&nbsp;</td>");
                        actualColumn++;
                    }
                    else
                    {
                        listStr.Append("</tr>");
                        actualColumn = 1;
                    }
                }
                itemCount++;
            }
            dr.Close();

            listStr.Append("</tr>");
            listStr.Append("</table>\r\n");

            if (itemCount > 0)
            {
                results.Visible = true;
                results.Controls.Add(ParseControl(listStr.ToString()));
            }
        }