/// <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> </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> </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> </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())); } }