Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  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

Anzeige:

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 (1517 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: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-2212
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


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: 778
Registriert: 18.05.2005

SolidWorks 2020 x64 SP3.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 21H1
Microsoft Office 365 ProPlus
Microsoft Visual Studio Enterprise 2022

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

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 | CAD.de-Newsletter

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

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

(c)2023 CAD.de | Impressum | Datenschutz