Hot News:
   

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  DataGridView / Spalten Sortierung Nummerisch

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  DataGridView / Spalten Sortierung Nummerisch (2238 / mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 06. Feb. 2019 10:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Abb_01.JPG


Abb_02.JPG


Abb_03.JPG

 
Guten Morgen Zusammen,


Ich befüll ein DataGridView mit Werten aus einer SQL-DB / Tabelle.
In der Spalte "BA-Nr." stehen ausschließlich Zahlen 1 - ... 1000 + X.
Diese werden so aufgelistet:
1
10
120
1000
2
20
...
etc.

Wie bekomme ich es hin, dass diese nach der richtigen Reihenfolge angezeigt werden:
1
2
3
4
...
10
...
100
...
200
...
1000
...
etc.

Code:

'--START--Grundeinstellungen im DataGridView---------------------------
DGV_BA.DataSource = Nothing
With DGV_BA
'--Spaltenköpfe----------------------------------------------------
.Columns.Clear()
.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken
.ColumnHeadersHeight = 22
.ColumnHeadersDefaultCellStyle.Font = New Drawing.Font("Arial", 8)
'//;;
'--Zeilen----------------------------------------------------------
.Rows.Clear()
.RowHeadersVisible = False
.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.False
.RowsDefaultCellStyle.BackColor = Drawing.Color.White
.AlternatingRowsDefaultCellStyle.BackColor = Drawing.Color.Beige
.RowsDefaultCellStyle.Font = New Drawing.Font("Arial", 8)
'//;;
'------------------------------------------------------------------
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.AllowUserToResizeColumns = False
.AllowUserToResizeRows = False
.ReadOnly = True
'//;;
End With
'--ENDE--Grundeinstellungen im DataGridView----------------------------


'--Anpassung / Spaltennamen + Spaltenbreiten---------------------------
With DGV_BA
'--Hinzufügen der CheckBox in Spalte 1-----------------------------
.Columns.Insert(0, DGV_ChkBox)
.Columns(0).Width = 25
.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
.Columns(0).DefaultCellStyle.BackColor = Color.Gray
'--Hinzufügen der Darstellung für den BA-Status--------------------
.Columns.Insert(1, BA_Status)
.Columns(1).HeaderText = "BA-Status"
.Columns(1).Width = 110
.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
.Columns(1).DefaultCellStyle.BackColor = Color.Gray
'------------------------------------------------------------------
.Columns(2).HeaderText = "Projekt-Nr."
.Columns(2).Width = 58
.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
.Columns(2).DefaultCellStyle.BackColor = Color.Gray
'------------------------------------------------------------------
'//;; In dieser Spalte soll die Sortierung erfolgen  /////////////
'//;;1 / 10 / 20 ... 80 ... 100 ... 200 ... 1000 etc. /////////////
.Columns(3).HeaderText = "BA-Nr."
.Columns(3).ValueType = GetType(Integer)
.Columns(3).Width = 52
.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
.Columns(3).DefaultCellStyle.BackColor = Color.Gray
'------------------------------------------------------------------
.Columns(4).HeaderText = "LV Pos.-Nr."
.Columns(4).Width = 70
.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
.Columns(4).DefaultCellStyle.BackColor = Color.Gray
'------------------------------------------------------------------


Vielen Dank für eure Hilfe.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mseufert
Ehrenmitglied V.I.P. h.c.
Freiberuflicher CAD/CAM Ingenieur


Sehen Sie sich das Profil von mseufert an!   Senden Sie eine Private Message an mseufert  Schreiben Sie einen Gästebucheintrag für mseufert

Beiträge: 2750
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-2306
3D Printer Prusa MK2 S

erstellt am: 06. Feb. 2019 14:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

das geht mit einer eigenen Klasse, die IComparer implementiert.

Beispiel findest Du hier

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering, Projektassistent


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 824
Registriert: 18.05.2005

erstellt am: 06. Feb. 2019 16:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk
Ich nehme an das dein DataGridView ungebunden ist.
Dann kannst du das SortCompare-Event des DataGridViews verwenden um das Sortierverhalten zu ändern.
Code:
Private Sub DGV_BA_SortCompare(sender As Object, e As System.Windows.Forms.DataGridViewSortCompareEventArgs) Handles DGV_BA.SortCompare
    'Suppose your interested column has index 3
    If e.Column.Index = 3 Then
        e.SortResult = Integer.Parse(e.CellValue1.ToString()).CompareTo(Integer.Parse(e.CellValue2.ToString()))
        'pass by the default sorting
        e.Handled = True
    End If
End Sub

Andernfalls (bei gebundenem DataGridView) solltest du den Spaltentyp der DataTable ändern.

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 11. Feb. 2019 15:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Michael!
Hallo Andreas!

Danke für eure Tipps.

@Andreas
Entscheidend war der Hinweis auf den Spaltentyp des DataTables.

Code:

.Columns(1).DataType = Type.GetType("System.Int32")

Nun funktioniert es wie gewünscht.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen .... | Nach anderen Beiträgen suchen

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2026 CAD.de | Impressum | Datenschutz