Avatar billede manicom Nybegynder
29. september 2004 - 17:07 Der er 8 kommentarer og
1 løsning

ændring af sortering i et datagrid

Hej

Jeg er ved at udvikle en windows application, men er stødt ind i et lille problem.

Jeg har et datagrid som er bundet til et dataview/Dataset.

Problemet er at jeg har en kolonnne med tal, men hvor der også er nogle blanke værdier.

Hvordan for jeg ændret sorterings metoden, så den kan sortere i rækkefølge, men med de blanke felter til sidst, i stedet for først.

Er der nogen der kender til dette problem, og har en løsning eller workaround.

Mvh.
Mads
Avatar billede Syska Mester
29. september 2004 - 17:18 #1
så skal der jo stå noget andet i stedet for.... så som '0', men tror den lige nu det er størrer eller mindre?
Avatar billede manicom Nybegynder
29. september 2004 - 18:18 #2
Den tror at en blank er større end fx. 1 2 3 4 5.

Jeg har tidligere lavet noget "slam" med at indsætte fx. 9999 i alle de blanke felter. Men det har jeg ikke rigtig lyst til denne gang..
Avatar billede manicom Nybegynder
29. september 2004 - 18:19 #3
rettelse: den tror den er mindre eks.  blank blank 1 2 3 4
og jeg vil have den til dette: 1 2 3 4 5 blank blank
Avatar billede Syska Mester
29. september 2004 - 18:58 #4
tja, kan ikke lige regne ud hvordan det kan laves, udover hvis man kunne fortælle den at et blankt felt er højere end tal
Avatar billede arne_v Ekspert
29. september 2004 - 19:23 #5
Hvilken database ?
Avatar billede manicom Nybegynder
29. september 2004 - 19:27 #6
Datasettet kommer fra MS SQL server..
Avatar billede arne_v Ekspert
29. september 2004 - 21:58 #7
Kan du så ikke bruge:

SELECT f1,f2,f3 FROM t ORDER BY IFNULL(f3,'zzzzzzzzzz')

?
Avatar billede arne_v Ekspert
29. september 2004 - 21:59 #8
Altså sorterer efter noget andet end det du selecter.
Avatar billede manicom Nybegynder
30. september 2004 - 21:05 #9
I skal have tak for hjælpen. Men jeg har nu fundet en løsning som jeg regner med at bliver den endelige..

Arnes løsning var god.. Men da jeg kører på et disconnected dataset, og ikke kan skrive SQL i dataview sort funktion, ville den ikke helt være god nok..

Min løsning er blevet til at jeg laver en ny component som arver fra DataGridTextboxColumn. Derefter overrider jeg GetColumnValueAtRow, så den returnere en anden string ved et bestemt tal. Så nu kan jeg indsætte 99999 i feltet, som så bare ikke bliver vist.

Men der kan nu blive sorteret efter tallet.

protected override object GetColumnValueAtRow(System.Windows.Forms.CurrencyManager source, int rowNum)
        {
                        // number kunne fx. være 99999
                        // replaceText er en tom string
            object obj =  base.GetColumnValueAtRow(source, rowNum);
            if(((int)obj==number) && (!Convert.IsDBNull(number)))
                return replaceText;
            else
                return base.GetColumnValueAtRow(source, rowNum);
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester