public ListColumns GetColumnsForType(Type type, ControllerContext controllerContext)
        {
            var columns = new ListColumns();
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, type);
            var sortingValues = GetSortingValues(controllerContext);

            foreach(var metadata in modelMetadata.Properties)
            {
                if(metadata.IsHidden()) continue;

                var column = new ListColumn
                                 {
                                     DisplayName = metadata.GetDisplayName(),
                                     Name = metadata.PropertyName,
                                     IsSearchable = metadata.IsSearchable(),
                                     Order = metadata.Order,
                                     SortDirection = sortingValues.SortDirection,
                                     Type = metadata.ModelType,
                                 };

                column.CellTemplate = FindCellTemplate(controllerContext, column.Name);
                column.HasCellTemplate = column.CellTemplate != null;
                column.IsSorted = column.Name.Equals(sortingValues.SortBy, StringComparison.InvariantCultureIgnoreCase);
                column.SortUrl = GetSortUrlForColumn(controllerContext, column, sortingValues);
                column.HeaderTemplate = FindHeaderTemplate(controllerContext, column.Name);
                column.HasHeaderTemplate = column.HeaderTemplate != null;

                columns.Add(column);
            }

            return columns;
        }
        private static string GetSortUrlForColumn(ControllerContext controllerContext, ListColumn column, SortingValues sortingValues)
        {
            var routeValues = new RouteValueDictionary(new {sortBy = column.Name, searchBy = sortingValues.SearchBy, searchValue = sortingValues.SearchValue});

            if(column.IsSorted)
                routeValues.Add("sortdirection", column.SortDirection.Opposite());

            return new UrlHelper(controllerContext.RequestContext).Action(controllerContext.RouteData.GetRequiredString("action"), routeValues);
        }
Esempio n. 3
0
public static System.Web.WebPages.HelperResult RenderListColumn(this HtmlHelper htmlHelper, ListColumn column)
{
return new System.Web.WebPages.HelperResult(__razor_helper_writer => {



#line 12 "..\..\Views\ListManage\Helpers.cshtml"
 
    if (column.HasHeaderTemplate)
    {
        htmlHelper.RenderPartial(column.HeaderTemplate, column);
    }
    else
    {             

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "    <th ");



#line 19 "..\..\Views\ListManage\Helpers.cshtml"
WebViewPage.WriteTo(@__razor_helper_writer, SortClass(column));

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, ">\r\n        <a href=\"");



#line 20 "..\..\Views\ListManage\Helpers.cshtml"
WebViewPage.WriteTo(@__razor_helper_writer, column.SortUrl);

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\">");



#line 20 "..\..\Views\ListManage\Helpers.cshtml"
WebViewPage.WriteTo(@__razor_helper_writer, column.DisplayName);

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "</a>\r\n    </th>\r\n");



#line 22 "..\..\Views\ListManage\Helpers.cshtml"
    }

#line default
#line hidden

});

}
Esempio n. 4
0
public static System.Web.WebPages.HelperResult SortClass(ListColumn column)
{
return new System.Web.WebPages.HelperResult(__razor_helper_writer => {



#line 25 "..\..\Views\ListManage\Helpers.cshtml"
  
    if (column.IsSorted)
    {

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "        ");

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "class=\"");



#line 28 "..\..\Views\ListManage\Helpers.cshtml"
WebViewPage.WriteTo(@__razor_helper_writer, column.SortDirection.GetValueOrDefault().ToString().ToLower());

#line default
#line hidden

WebViewPage.WriteLiteralTo(@__razor_helper_writer, "\"\r\n");



#line 29 "..\..\Views\ListManage\Helpers.cshtml"
    }

#line default
#line hidden

});

}