public static IGridColumn <T, TProperty> AddProperty <T, TProperty>(this IGridColumnsOf <T> columns, Expression <Func <T, TProperty> > expression) { return(columns .Add(expression) .Css(GetCssClassFor <TProperty>()) .Titled(ResourceProvider.GetPropertyTitle(expression))); }
public static void AddId <T>(this IGridColumnsOf <T> gridColumn) { gridColumn.Add() .Titled("Id") .RenderedAs(m => m.GetType().GetProperty("Id")?.GetValue(m)) .CssClasses = "w-1 p-2"; }
public static IGridColumn <T> AddActionLink <T>(this IGridColumnsOf <T> columns, String action, String iconClass) where T : class { return(columns .Add(model => GetLink(columns.Grid.ViewContext, model, action, iconClass)) .Css("action-cell") .Encoded(false)); }
public static IGridColumn <T, TProperty> AddProperty <T, TProperty>(this IGridColumnsOf <T> columns, Expression <Func <T, TProperty> > expression) { return(columns .Add(expression) .Named(NameFor(expression)) .Css(CssClassFor <TProperty>()) .Titled(Resource.ForProperty(expression))); }
public static IGridColumn <T, IHtmlContent> AddActionLink <T>(this IGridColumnsOf <T> columns, String action, String iconClass) where T : class { if (!IsAuthorizedTo(columns.Grid.ViewContext, action)) { return(new GridColumn <T, IHtmlContent>(columns.Grid, model => null)); } return(columns.Add(model => GetLink(columns.Grid.ViewContext, model, action, iconClass)).Css("action-cell")); }
public static void AddSorting <T>(this IGridColumnsOf <T> gridColumn) where T : ISortable { gridColumn.Add(m => m.Order) .RenderedAs(m => { var type = (m.GetType().Namespace ?? "").StartsWith("Castle.Proxies") ? m.GetType().BaseType : m.GetType(); return("<button data-key=\"" + m.Id + "\" data-model=\"" + type?.FullName + "\" class=\"btn-link p-0 m-0 bg-transparent border-0 sort-handle\" type=\"button\"><i class=\"fas fa-sort\"></i></button>"); }) .Titled("").Encoded(false).CssClasses = "p-2"; }
public static IGridColumn <T> AddActionLink <T>(this IGridColumnsOf <T> columns, String action, String iconClass) where T : class { if (!IsAuthorizedToView(columns.Grid, action)) { return(new GridColumn <T, String>(columns.Grid, model => "")); } return(columns .Add(model => GetLink(columns.Grid, model, action, iconClass)) .Css("action-cell") .Encoded(false)); }
public static void AddActions <T>(this IGridColumnsOf <T> gridColumn, Action <IActionBuilder <T> > action) { var viewContext = gridColumn.Grid.ViewContext; var httpContext = viewContext?.HttpContext; gridColumn.Add().RenderedAs(m => { var builder = new ActionBuilder <T>(m, httpContext, httpContext?.RequestServices.GetService <LinkGenerator>(), viewContext?.RouteData.Values["controller"]?.ToString()); action(builder); return(builder.Html); }).Encoded(false).CssClasses = "p-2 w-1 white-space-nowrap align-middle"; }
public static void AddActivating <T>(this IGridColumnsOf <T> gridColumn) where T : IActivable { gridColumn.Add() .RenderedAs(m => { var type = (m.GetType().Namespace ?? "").StartsWith("Castle.Proxies") ? m.GetType().BaseType : m.GetType(); return(string.Format( "<a data-key=\"" + m.Id + "\" data-model=\"" + type?.FullName + "\" class=\"activable {0}\" href=\"\"><i class=\"fas fa-lg fa-toggle-on {1}\"></i></a>", m.Active ? "activated" : "deactivated", !m.Active ? "fa-rotate-180" : "")); }) .Encoded(false).CssClasses = "w-1 p-2"; }
public static IGridColumn <T, IHtmlContent> AddAction <T>(this IGridColumnsOf <T> columns, String action, String iconClass) where T : class { if (!IsAuthorizedFor(columns.Grid.ViewContext !, action)) { return(new GridColumn <T, IHtmlContent>(columns.Grid, model => HtmlString.Empty)); } IUrlHelperFactory?factory = columns.Grid.ViewContext?.HttpContext.RequestServices.GetService <IUrlHelperFactory>(); IUrlHelper? url = factory?.GetUrlHelper(columns.Grid.ViewContext); return(columns .Add(model => GenerateLink(model, url, action, iconClass)) .Css($"action-cell {action.ToLower()}")); }
public static IGridColumn <DataRow, object> FormatGridColumn(IGridColumnsOf <DataRow> columns, DataColumn dataColumn, Models.ReportGrid.Column columnInfo) { IGridColumn <DataRow, object> thisColumn; //If the column name specifies formats, we parse the values. if (square.IsMatch(dataColumn.ColumnName)) { var match = square.Match(dataColumn.ColumnName).Groups[0].Value; switch (match.ToLowerInvariant()) { case "[date]": DateTime dateTime; thisColumn = columns.Add(t => DateTime.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out dateTime) ? dateTime : null as object).FilteredAs("date"); break; case "[time]": DateTime dateTimeTime; thisColumn = columns.Add(t => DateTime.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out dateTimeTime) ? dateTimeTime : null as object).FilteredAs("date") .Formatted("{0:hh:mm tt}"); break; case "[int]": int intTemp; thisColumn = columns.Add(t => int.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out intTemp) ? intTemp : null as object).FilteredAs("number") ; break; case "[double]": double doubleTemp; thisColumn = columns.Add(t => double.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out doubleTemp) ? doubleTemp : null as object).FilteredAs("number") ; break; case "[currency]": decimal currencyTemp; thisColumn = columns.Add(t => decimal.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out currencyTemp) ? currencyTemp : null as object).FilteredAs("number") .Formatted("{0:C}"); break; default: if (match.ToLowerInvariant().Contains("date") && curly.IsMatch(match)) { var matchedSq = curly.Match(match).Groups[0].Value; DateTime dateTimeTemp; thisColumn = columns.Add(t => DateTime.TryParse(t.ItemArray[dataColumn.Ordinal].ToString(), out dateTimeTemp) ? dateTimeTemp : null as object).FilteredAs("date") .Formatted(matchedSq); } else { thisColumn = columns.Add(t => t.ItemArray[dataColumn.Ordinal].ToString() as object).FilteredAs("text"); } break; } } else { thisColumn = columns.Add(t => t.ItemArray[dataColumn.Ordinal].ToString() as object).FilteredAs("text"); } thisColumn.Filterable(columnInfo.Filterable) .Sortable(columnInfo.Sortable) .Titled(!string.IsNullOrEmpty(columnInfo.Title) ? columnInfo.Title : square.Replace(dataColumn.ColumnName, "")) .Named(square.Replace(dataColumn.ColumnName, "").GetSanitizedName()); if (columnInfo.Filterable && columnInfo.FilterType.HasValue) { thisColumn.Filterable(columnInfo.FilterType.Value); if (columnInfo.UseFilterOptions) { thisColumn.UsingFilterOptions(); } } return(thisColumn); }
public static IGridColumn <T> AddProperty <T, TProperty>(this IGridColumnsOf <T> columns, Expression <Func <T, TProperty> > expression) { return(columns .Add(expression) .Css(GetCssClassFor <TProperty>())); }
public static IGridColumn <T, IHtmlContent> AddAction <T>(this IGridColumnsOf <T> columns, Expression <Func <object, string> > href, string renderName) { return(columns.Add(model => GenerateLink(columns.Grid.ViewContext, href.Compile().Invoke(1), renderName))); }