/// <summary> /// Binds the grid for defined types. /// </summary> private void gDefinedType_Bind() { var queryable = new DefinedTypeService( new RockContext() ).Queryable(); int? categoryId = tFilter.GetUserPreference( "Category" ).AsIntegerOrNull(); if ( categoryId.HasValue ) { queryable = queryable.Where( a => a.CategoryId.HasValue && a.CategoryId.Value == categoryId.Value ); } SortProperty sortProperty = gDefinedType.SortProperty; if ( sortProperty != null ) { queryable = queryable.Sort( sortProperty ); } else { queryable = queryable.OrderBy( a => a.Category.Name ).ThenBy( a => a.Name ); } gDefinedType.DataSource = queryable .Select( a => new { a.Id, Category = a.Category.Name, a.Name, a.Description, a.IsSystem, FieldTypeName = a.FieldType.Name } ) .ToList(); gDefinedType.DataBind(); }