Beispiel #1
0
        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++;
                }
            }
        }
Beispiel #2
0
        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);
        }