webForumDet fria alternativet

Bäbisfråga: Hur manipulera data innan de visas?

.NET

7 svar · 633 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Jag har en databas med namn på personer med olika funktioner.
En är läkare en annan polis och en tredje brandman. Detta lagras i databasen som yrke (small_Int).

Nu skulle jag beroende på vilket yrke personen har visa en symbol/bild för varje yrke. ex ett kors för läkare och en flamma för en brandman osv.

Då måste jag ju manipulera med min "data" innan den skickas till gridviewn.

Önskekod:

När data hämtas eller gridviewn fylls:
fyllGridview.row(x).cell(2) = set_yrke(rs("yrke"))

Private Function set_yrke(byVal y as integer) As String
    Select case y
        case 1
            Return "<img src=""doktor.gif"">"
        case 2
            Return "<img src=""polis.gif"">"
        case 3
            Return "<img src=""brandman.gif"">"
        'osv
    End select
End Function

Hur gör jag detta?
(OT: Ja, ASP och VB är svunna tider...)

Medlem sedan dec. 19996 522 inlägg
#2

Lyssna på gridens onitemdatabound och hitta din kontroll du har bilden i (i din template kanske), sätt rätt bild src

Medlem sedan okt. 20041 556 inlägg
#3

Ok, fattar inte riktigt. Exempelkod?

:r

Medlem sedan dec. 19996 721 inlägg
#4

...eller i stället för att hårdkoda så kan du ju lägga in en tabell i databasen, med yrkena, och joina in den i sökningen, så får du ut yrket i klartext direkt.

Medlem sedan okt. 20041 556 inlägg
#5

jo, men igentligen är jag bara nyfiken hur man gör, i erkas fall. :)

Medlem sedan maj 20012 812 inlägg
#6

Här kommer lite psedu-kod som du kan hämta insperation ifrån.

Du skall i din GridView ha en kolumn som är en Image, samt att du skall använda dig av event RowDataBound som finns på din GridView

protected void GridView1_onRowDataBound(object sender, GridViewRowEventArg e)
{
     switch(e.Row.RowType)
    {
         case RowType.DataRow
                //-- Gör om DataItem till ditt object som du bundit till din grid, i mitt fall en custom entity
                //-- I ditt fall så är det säker en dataRow eller något annat ful objekt.... :)
                CustomEntity ce = e.Row.DataItem as CustomEntity;

                if(ce.Yrke == 1)
                    ((Image)e.Row.Cells[2]).ImageUrl = "doktor.gif";
                eles if(ce.Yrke == 2)
                    ((Image)e.Row.Cells[2]).ImageUrl = "polis.gif";
                break;
     }

}

- M

Medlem sedan okt. 20041 556 inlägg
#7

Tack för inspirationen. Ja, jag antar att sqlDataSource är ett riktigt ful-objekt. :)

Medlem sedan dec. 19996 721 inlägg
#8

Travoni skrev:

Tack för inspirationen. Ja, jag antar att sqlDataSource är ett riktigt ful-objekt. :)

Usch ja!

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)