Пример #1
0
        public GridColumnBase <T> CreateBoundColumn(string memberName, Type memberType)
        {
            bool liftMemberAccess = false;

            if (grid.DataSource.Data != null)
            {
                liftMemberAccess = grid.DataSource.Data.AsQueryable().Provider.IsLinqToObjectsProvider();
            }

            LambdaExpression lambdaExpression = ExpressionBuilder.Lambda <T>(memberType, memberName, liftMemberAccess);

            Type columnType = typeof(GridBoundColumn <,>).MakeGenericType(new[] { typeof(T), lambdaExpression.Body.Type });

            ConstructorInfo constructor = columnType.GetConstructor(new[] { grid.GetType(), lambdaExpression.GetType() });

            IGridBoundColumn column = (IGridBoundColumn)constructor.Invoke(new object[] { grid, lambdaExpression });

            column.Member = memberName;
            column.Title  = memberName.AsTitle();

            if (memberType != null)
            {
                column.MemberType = memberType;
            }
            return((GridColumnBase <T>)column);
        }
Пример #2
0
        private object ExtractForeignKeyText(IGridBoundColumn column, object key)
        {
            var foreignKeyColumn = column as IGridForeignKeyColumn;

            if (foreignKeyColumn != null && foreignKeyColumn.Data != null)
            {
                var data = foreignKeyColumn.Data;
                if (!data.Any(i => i.Selected))
                {
                    if (key != null)
                    {
                        var selectedItem = data.FirstOrDefault(i => i.Value.Equals(key.ToString()));
                        if (selectedItem != null)
                        {
                            return(selectedItem.Text);
                        }
                    }
                }
                else
                {
                    return(data.First(i => i.Selected).Text);
                }
            }
            return(key);
        }
Пример #3
0
            public string GetDisplayName(IGridBoundColumn column)
            {
                // Get the typed bound column
                GridBoundColumn <TModel, TValue> boundColumn = column as GridBoundColumn <TModel, TValue>;

                if (boundColumn == null)
                {
                    return(String.Empty);
                }

                // Create the appropriate HtmlHelper and use it to get the display name
                HtmlHelper <TModel> helper = HtmlHelpers.For <TModel>(boundColumn.Grid.ViewContext, boundColumn.Grid.ViewData, new RouteCollection());

                return(helper.DisplayNameFor(boundColumn.Expression).ToString());
            }
 public GridFilterAdorner(IGridBoundColumn column)
 {
     this.column = column;
 }
Пример #5
0
 public GridBoundColumnBuilder(IGridBoundColumn <T> column)
     : base(column)
 {
 }
Пример #6
0
 public GridBoundColumnSerializer(IGridBoundColumn column)
     : base(column)
 {
     this.column = column;
 }
 public GridBoundColumnSerializer(IGridBoundColumn column)
     : base(column)
 {
     this.column = column;
 }
Пример #8
0
 private object ExtractForeignKeyText(IGridBoundColumn column, object key)
 {
     var foreignKeyColumn = column as IGridForeignKeyColumn;
     if (foreignKeyColumn != null && foreignKeyColumn.Data != null)
     {
         var data = foreignKeyColumn.Data;
         if (!data.Any(i => i.Selected))
         {
             if (key != null)
             {
                 var selectedItem = data.FirstOrDefault(i => i.Value.Equals(key.ToString()));
                 if (selectedItem != null)
                 {
                     return selectedItem.Text;
                 }
             }
         }
         else
         {
             return data.First(i => i.Selected).Text;
         }
     }
     return key;
 }