private static void HandleBinaryImageColumnsOnDataBound(RadGrid Grid, CodeTorch.Core.Grid GridConfig, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem dataItem = (GridDataItem)e.Item; int gridColumnIndex = 0; foreach (CodeTorch.Core.GridColumn column in GridConfig.Columns) { if (column is BinaryImageGridColumn) { TableCell cell = null; RadBinaryImage img = null; BinaryImageGridColumn c = ((BinaryImageGridColumn)column); if (!String.IsNullOrEmpty(column.UniqueName)) { cell = dataItem[column.UniqueName]; img = (RadBinaryImage)cell.Controls[0]; } else { cell = dataItem[Grid.Columns[gridColumnIndex]]; img = (RadBinaryImage)cell.Controls[0]; } if (img != null) { if (!String.IsNullOrEmpty(c.DataNavigateUrlFields) || !String.IsNullOrEmpty(c.DataNavigateUrlFormatString)) { HyperLink link = new HyperLink(); string linkUrl = String.Empty; string urlFormatString = Common.CreateUrlWithQueryStringContext(c.DataNavigateUrlFormatString, c.Context); if (!String.IsNullOrEmpty(c.DataNavigateUrlFields)) { object[] fields = c.DataNavigateUrlFields.Split(','); object[] fieldValues = new object[fields.Length]; for (int i = 0; i < fields.Length; i++) { string fieldName = fields[i].ToString(); object value = ((DataRowView)e.Item.DataItem)[fieldName]; fieldValues[i] = value; } linkUrl = String.Format(urlFormatString, fieldValues); } link.NavigateUrl = linkUrl; link.Target = Common.CoalesceStr(link.Target, c.Target); cell.Controls.Remove(img); link.Controls.Add(img); cell.Controls.AddAt(0, link); } if (((DataRowView)e.Item.DataItem)[c.DataField] is DBNull) { string imageUrl = c.DefaultImageUrl; if (!String.IsNullOrEmpty(c.DefaultImageUrlField)) { if (String.IsNullOrEmpty(c.DefaultImageUrlFieldFormat)) { imageUrl = ((DataRowView)e.Item.DataItem)[c.DefaultImageUrlField].ToString(); if (!imageUrl.ToLower().Contains("//")) { imageUrl = "//" + imageUrl; } } else { imageUrl = String.Format(c.DefaultImageUrlFieldFormat, ((DataRowView)e.Item.DataItem)[c.DataAlternateTextField]); } } if (!String.IsNullOrEmpty(imageUrl)) { img.ImageUrl = imageUrl; } } } } gridColumnIndex++; } } }
public static void BuildBinaryImageGridColumn(BasePage page, RadGrid Grid, Grid GridObject, BinaryImageGridColumn Column, string ResourceKeyPrefix) { GridBinaryImageColumn col = new GridBinaryImageColumn(); string HeaderText = Common.CoalesceStr(col.HeaderText, Column.HeaderText); string DataAlternateTextFormatString = Common.CoalesceStr(col.DataAlternateTextFormatString, Column.DataAlternateTextFormatString); col.HeaderText = GetGlobalResourceString(page, Column, ResourceKeyPrefix, "HeaderText", HeaderText); col.SortExpression = Common.CoalesceStr(col.SortExpression, Column.SortExpression); col.DataField = Common.CoalesceStr(col.DataField, Column.DataField); col.UniqueName = Common.CoalesceStr(col.UniqueName, Column.UniqueName); col.DataAlternateTextField = Common.CoalesceStr(col.DataAlternateTextField, Column.DataAlternateTextField); col.DataAlternateTextFormatString = GetGlobalResourceString(page, Column, ResourceKeyPrefix, "DataAlternateTextFormatString", DataAlternateTextFormatString); //string defaultImageUrl = String.IsNullOrEmpty(col.DefaultImageUrlFormat) ? col.DefaultImageUrl; col.DefaultImageUrl = Common.CoalesceStr(col.DefaultImageUrl, Column.DefaultImageUrl); if (!String.IsNullOrEmpty(Column.ImageHeight)) { col.ImageHeight = new Unit(Column.ImageHeight); } if (!String.IsNullOrEmpty(Column.ImageWidth)) { col.ImageWidth = new Unit(Column.ImageWidth); } col.ImageAlign = Column.ImageAlign; col.ResizeMode = (Telerik.Web.UI.BinaryImageResizeMode)Enum.Parse(typeof(Telerik.Web.UI.BinaryImageResizeMode), Column.ResizeMode.ToString()); FormatStyle(col, Column); Grid.MasterTableView.Columns.Add(col); }