DataGridVew Sort() ??

14/05/2010 - 15:54 von Peter Haus | Report spam
Hallo zusammen,

ich verzweifle gerade daran, das ich in einem DataGridView eine
Datum Spalte sortieren möchte.
Ich habe schon einiges versucht, komme aber egal was ich versuche
nicht an's Ziel.

Ich habe

var query = from CaterWareLibrary.Artikel a in _artikel
where a.instandhaltungInterval>0 &&
a.NextService >= DateTime.Now.Date orderby a.NextService descending
select new InstandHaltung
{
rowState = 0,
id=a.id,
NextService= a.NextService,
name=a.name,
details=a.details,
einheit=a.einheit,
inventur=a.inventur,

instandhaltungInterval=a.instandhaltungInterval,
InterVallText =
_InstandhaltungIntervallList[a.instandhaltungInterval].text
};



dgvWartungVorschau.AutoGenerateColumns = false;
dgvWartungVorschau.DataSource = query.ToList();

DataGridViewColumn col =
dgvWartungVorschau.Columns["NextService"];
col.HeaderCell.SortGlyphDirection= SortOrder.Ascending;

...


Ich habe versucht in dgv_ColumnHeaderMouseClick() zu sortieren.
mit dgvWartungVorschau.Sort(new RowComparer(SortOrder.Ascending));
bekam ich nicht hin!

dann so
private void dgvWartungVorschau_ColumnHeaderMouseClick(object sender,
DataGridViewCellMouseEventArgs e)
{

DataGridViewColumn col =dgvWartungVorschau.Columns[e.ColumnIndex];
IEnumerable<InstandHaltung> ol;


ol= (IEnumerable<InstandHaltung>) dgvWartungVorschau.DataSource;

if (col.HeaderCell.SortGlyphDirection == SortOrder.Descending )
{
List<InstandHaltung> xx = (List<InstandHaltung>) ol.OrderBy(a =>
a.NextService).ToList<> ; // ????????????
InstandHaltung[] xx = ol.OrderBy(a =>
a.NextService).ToList<InstandHaltung> ; // ??????????
}
else if (col.HeaderCell.SortGlyphDirection == SortOrder.Ascending )
{
var x = ol.OrderBy(a => a.NextService );
}
}

Nun hànge ich an:
Wie kann ich die Liste die an dgvWartungVorschau.DataSource gebunden
ist, aufsteigend und absteigend sortieren?
Wie sieht die Zuweisung (evtl. Type Casts) aus?
Ich Blicks leider überhaupt nicht, voller Blindflug.
Gibt es bessere Möglichkeiten zum Sortieren eines DataGridView?
Kann mir jemand helfen, wie das geht?


Vielen Dank
Peter




private class InstandHaltung
{
public int id { get; set; }
public int rowState { get; set; }
public DateTime NextService { get; set; }
public string name { get; set; }
public string details { get; set; }
public string einheit { get; set; }
public int inventur { get; set; }
public int intervall { get; set; }
public int instandhaltungInterval { get; set; }
public string InterVallText { get; set; }

}
 

Lesen sie die antworten

#1 Peter Haus
14/05/2010 - 21:13 | Warnen spam
Hallo

Hier bin ich ein Stück weiter, was mich interessieren würde ist
lediglich: Gibt es eine bessere Möglichkeit zum Sortieren, als mit
LINQ, z.B mittels DataGridView Funktionen?

Danke Peter

Ähnliche fragen