Avatar billede dampnet Nybegynder
07. september 2006 - 11:06 Der er 4 kommentarer og
1 løsning

gridview og check cell.text er tom/null

Hej alle

Jeg har et gridview jeg fylder fra en Access DB, og nogen af cell'erne bliver tomme grundet manglede data, jeg vil så gerne give cell'erne farve udfra hvilken data der er i dem(hurtigt fortalt). Problemet er så at når jeg checker værdien af en celle og den er tom så får jeg en exception, så jeg vil gerne tjekke overordenet om en af cell'erne er tomme, for så ved jeg at de andre også er, men det kan jeg ikke få den til. Her er min funktion som bliver kaldt på RowBound, håber der findes en venlig sjæl der kan forstå mig og kan hjælpe mig.

    Sub doColor(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' Tjekker om varen har en faktisk leveringsdag, og hvis ikke sætter den X felter til GUL.
            If Not String.IsNullOrEmpty(e.Row.Cells(12).Text) Then
                ' Tjek om leverings % er mindre end 100 og sætter farven til henholdsvis RØD eller GRØN
                If CInt(e.Row.Cells(9).Text) < 100 Then
                    e.Row.Cells(9).BackColor = Drawing.Color.Red
                Else
                    e.Row.Cells(9).BackColor = Drawing.Color.Green
                End If
                ' Tjek om diff mellem ønsket og faktisk leveringsdag er mere end -1 og sætter farven til RØD eller GRØN
                If CInt(e.Row.Cells(13).Text) < -1 Then
                    e.Row.Cells(13).BackColor = Drawing.Color.Red
                Else
                    e.Row.Cells(13).BackColor = Drawing.Color.Green
                End If
                ' Tjek om diff mellem bekræftet og faktisk leveringsdag er mere end -1 og sætter farven til RØD eller GRØN
                If CInt(e.Row.Cells(14).Text) < -1 Then
                    e.Row.Cells(14).BackColor = Drawing.Color.Red
                Else
                    e.Row.Cells(14).BackColor = Drawing.Color.Green
                End If
            Else
                e.Row.Cells(12).BackColor = Drawing.Color.Yellow
                e.Row.Cells(13).BackColor = Drawing.Color.Yellow
                e.Row.Cells(14).BackColor = Drawing.Color.Yellow
            End If
        End If
    End Sub
Avatar billede dampnet Nybegynder
07. september 2006 - 12:28 #1
Det er linien: If Not String.IsNullOrEmpty(e.Row.Cells(12).Text) Then som jeg ikke kan få til at fungere efter hensigten. Jeg ville gerne tjekke om cell'en indeholder noget eller bare er tom og hvis den er tom skal Else sætningen til den if så bare køres og ellers skal de andre if sætninger inden i if blokken køres.
Avatar billede agertoft Nybegynder
07. september 2006 - 15:28 #2
Din celles tekst vil ikke være null, så prøv at skifte den linje du nævner ud med:
If e.Row.Cells(12).Text <> String.Empty Then
Avatar billede dampnet Nybegynder
07. september 2006 - 15:36 #3
agertoft: Mange tak for dit svar, men det virker desvære ikke. Fejlen som opstår er når jeg Cint(e.Row.Cells(?).Text) længere ned for jeg er at vide det er et invalid format. Men det kan også være der er en bedre måde at gøre dette på men jeg kender den bare ikke lige.
Avatar billede dampnet Nybegynder
07. september 2006 - 16:07 #4
Jeg har selv lige fundet løsningen, som agertolf rigtigt nok siger er cell'en ikke tom det indeholder faktisk et whitespace. Så hvis jeg laver den anden If sætning til If e.Row.Cells(12).Text <> "&nbsp;" Then, så virker det.

agertolf: mange tak for at skubbe mig i den rigtige retning, hvis du laver et svar kan du godt få points for det.
Avatar billede agertoft Nybegynder
07. september 2006 - 17:12 #5
Velbekomme :)
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