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); }
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); }
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; }
public GridBoundColumnBuilder(IGridBoundColumn <T> column) : base(column) { }
public GridBoundColumnSerializer(IGridBoundColumn column) : base(column) { this.column = column; }
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; }