/// <summary> /// Raises the <see cref="E:System.Windows.Forms.ListView.ColumnClick"/> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.ColumnClickEventArgs"/> that contains the event data.</param> protected override void OnColumnClick(ColumnClickEventArgs e) { //TODO: call Sort(columnIndex); base.OnColumnClick(e); if (!SortColumnOnClick) { return; } UpdateSortInfos(); bool asc = true; SortType sortType = SortType.String; SortInformation info = sortProperties[e.Column]; if (info != null) { asc = (info.Direction == SortDirection.Ascending); sortType = info.Type; } // On trie base.ListViewItemSorter = new ListViewItemComparer(e.Column, asc, sortType); base.Sort(); // Enfin, on inverse l'ordre de tri pour la prochaine fois. if (info != null) { info.Direction = ( info.Direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending); } }
/// <summary> /// Cette méthode permet de spécifier un type d'ordre pour une colonne /// (Numérique ou Chaîne) /// </summary> /// <param name="columnIndex">Numéro de la colonne à paramétrer</param> /// <param name="sortType">Type of the sort.</param> /// <returns></returns> /// <remarks> /// Si le numéro de colonne est -1, alors, on spécifie les /// paramètres de tri pour la propriété Tag. /// </remarks> public bool SetColumnOrderType(int columnIndex, SortType sortType) { UpdateSortInfos(); if (columnIndex == -1) { sortTag.Type = sortType; } else { if (Columns.Count <= columnIndex) { return(false); } else { SortInformation info = sortProperties[columnIndex]; if (info == null) { return(false); } else { info.Type = sortType; } } } return(true); }
public FilteredRelationshipMLFilterCriterion(Guid role, IEnumerable <Guid> necessaryMIATypeIds, IEnumerable <Guid> optionalMIATypeIds, IFilter filter, SortInformation sortInformation) { _role = role; _necessaryMIATypeIds = necessaryMIATypeIds; _optionalMIATypeIds = optionalMIATypeIds; _filter = filter; _sortInformation = sortInformation; }
public RelationshipMLFilterCriterion(Guid role, Guid linkedRole, IEnumerable <Guid> necessaryMIATypeIds, IEnumerable <Guid> optionalMIATypeIds, SortInformation sortInformation) { _role = role; _linkedRole = linkedRole; _necessaryMIATypeIds = necessaryMIATypeIds; _optionalMIATypeIds = optionalMIATypeIds; _sortInformation = sortInformation; }
public override IQueryable <ExecutorResponse> SetUpSorting(IQueryable <ExecutorResponse> query) { SortInformation sortInformation = ParseOrderBy(OrderBy, ValidOrderByValues); if (sortInformation != null) { switch (sortInformation.PropertyName) { case "description": query = ApplyOrdering(query, dtc => dtc.Description, sortInformation.SortDirection); break; } } return(query); }
public override IQueryable<PlayerResponse> SetUpSorting(IQueryable<PlayerResponse> query) { SortInformation sortInformation = ParseOrderBy(OrderBy, ValidOrderByValues); if (sortInformation != null) { switch (sortInformation.PropertyName) { case "lastName": query = ApplyOrdering(query, dtc => dtc.LastName, sortInformation.SortDirection); break; } } return query; }
/// <summary> /// Sorts the list according to the specified column index. /// </summary> /// <param name="columnIndex">Index of the column.</param> public void Sort(int columnIndex) { SortInformation info = null; UpdateSortInfos(); bool ok = true; if (columnIndex == -1) { base.ListViewItemSorter = new ListViewItemComparer(-1, sortTag); info = sortTag; } else { if (columnIndex < 0) { ok = false; } if (Columns.Count <= columnIndex) { ok = false; } info = sortProperties[columnIndex]; if (info == null) { ok = false; } if (ok) { base.ListViewItemSorter = new ListViewItemComparer(columnIndex, info); } } if (ok) { base.Sort(); // Enfin, on inverse l'ordre de tri pour la prochaine fois. if (info != null) { info.Direction = ( info.Direction == SortDirection.Ascending ? SortDirection.Descending : SortDirection.Ascending); } } }
/// <summary> /// Initializes a new instance of the <see cref="ListViewItemComparer"/> class. /// </summary> /// <param name="colIndex">The column index.</param> /// <param name="sortInformation">The sort information.</param> public ListViewItemComparer(int colIndex, SortInformation sortInformation) : this(colIndex, sortInformation.Direction, sortInformation.Type) { }
public async Task <DataGridResult <WeatherForecast> > GetItemsAsync( int pageNumber, int pageSize, SortInformation <WeatherForecast> sortInfo = null, string searchQuery = null, object parameters = null) { var query = Data.AsQueryable(); if (!(sortInfo is null)) { if (sortInfo.Type == SortType.Ascending) { switch (sortInfo.Key) { case nameof(WeatherForecast.Date): default: query = query.OrderBy(f => f.Date); break; case nameof(WeatherForecast.TemperatureC): query = query.OrderBy(f => f.TemperatureC); break; case nameof(WeatherForecast.TemperatureF): query = query.OrderBy(f => f.TemperatureF); break; case nameof(WeatherForecast.Summary): query = query.OrderBy(f => f.Summary); break; } } else { switch (sortInfo.Key) { case nameof(WeatherForecast.Date): default: query = query.OrderByDescending(f => f.Date); break; case nameof(WeatherForecast.TemperatureC): query = query.OrderByDescending(f => f.TemperatureC); break; case nameof(WeatherForecast.TemperatureF): query = query.OrderByDescending(f => f.TemperatureF); break; case nameof(WeatherForecast.Summary): query = query.OrderByDescending(f => f.Summary); break; } } } if (!(searchQuery is null)) { var searchQueryLowercase = searchQuery.ToLower(); query = query.Where(f => f.Date.ToString().ToLower().Contains(searchQueryLowercase) || f.TemperatureC.ToString().Contains(searchQuery) || f.TemperatureF.ToString().Contains(searchQuery) || f.Summary.ToLower().Contains(searchQueryLowercase)); } if (!(parameters is null)) { var type = parameters.GetType(); if (!(type.GetProperty(nameof(WeatherForecast.Summary)) is null)) { query = query.Where(f => f.Summary == type.GetProperty(nameof(WeatherForecast.Summary)).GetValue(parameters) as string); } } var totalItems = (uint)query.Count(); var items = query.Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList(); return(new DataGridResult <WeatherForecast>(items, totalItems)); }