Hej!
Det får du lösa i ItemDatabound, och kolla värdet, och sätta CSS på elementet.
Återkom gärna om du får problem.
10 svar · 682 visningar · startad av Sjodahl
Hej!
Lyckas inte riktigt få till så att man kan få olika färger på en Gridview.
tex om ett datum är under 2008 så skall hela fältet vara rött.
Hej!
Det får du lösa i ItemDatabound, och kolla värdet, och sätta CSS på elementet.
Återkom gärna om du får problem.
På min GridView har jag satt följande:
ondatabound="GridView1_DataBound
protected void GridView1_DataBound(object sender, EventArgs e)
{
här jag skall ta hand om det?
}
Exakt där ska du ta hand om det.
e.Item.DataItem innehåller ett objekt av den typen som du databundit mot. Rätt typkastat så kan du använda det där.
Nej, inte GridView. Kanske en DataRow eller nåt, beror på vad det är för datatyp du databinder till.
DataRow r = (DataRow)e.Item.DataItem;
DataRow r = (DataRow)e.Item.DataItem
System.EventArgs' does not contain a definition for 'Item' and no extension method 'Item' accepting a first argument of type 'System.EventArgs'
Det är en gridview jag binder datan till.
Data typen är lite varierande mellan Int,string,datetime.
(om jag inte missförstår dig).
Du missförstår mig. Du har en datakälla, som du databinder till din GridView.
Det är bara EN datatyp (men det kan vara en komplex sådan).
Kanske finns inte e.Item.DataItem i en GridView, men i Repeaters finns den iallafall. Jag använder inte GridView.
Där satt den:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int quantity = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "quantity"));
string FBK = DataBinder.Eval(e.Row.DataItem, "FBK").ToString();
string M4 = DataBinder.Eval(e.Row.DataItem, "M4").ToString();
if (FBK == "" || M4 == "")
{
e.Row.BackColor = System.Drawing.Color.DarkRed;
e.Row.ForeColor = System.Drawing.Color.White;
}
}
}
Tack för hjälpen.
Så lite så... Det skiljer alltså lite mellan GridView och Repeater.