2010-12-28 3 views
2

Ich habe eine Tabelle wie Mitarbeiter und eine seiner Zeile ist "Status". Wenn der Statuswert 'genehmigen' ist, dann möchte ich diese Zeile in einer grünen Farbe zeigen ansonsten möchte ich es in einer roten Farbe zeigen. Ich habe folgende versucht, aber es funktioniert nichtWie kann ich die Spaltenvorderfarbe in DataGridview gemäß der Bedingung ändern?

if (e.Row.RowType == DataControlRowType.Header) 
{ 
    string status = DataBinder.Eval(e.Row.DataItem, "IsApprove").ToString(); 
    if (status == "pending") 
    { 
     e.Row.ForeColor = System.Drawing.Color.Red; // Change the row's Text color 
    } 
} 

auch dieser

private void gvleavedetail_cellformatting(object sender, datagridviewcellformattingeventargs e) 
{ 
    // if the column is the artist column, check the 
    // value. 
    if (this.gvleavedetail.columns[e.columnindex].name == "artist") 
    { 
     if (e.value != null) 
     { 
      // check for the string "pink" in the cell. 
      string stringvalue = (string)e.value; 
      stringvalue = stringvalue.tolower(); 
      if (stringvalue == "high") 
      { 
       e.cellstyle.backcolor = color.pink; 
      } 
     } 
    } 

Aber in diesem Fall ich erhalte Fehler für DataGridViewCellFormattingEventArgs ich VS2010 mit

Antwort

3

hallo alle Ich habe die Lösung plz c diese;)

schreiben Sie einfach die folgende Bedingung Code auf RowDataBound EVENT OF GR IDVIEW

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      string status = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "IsApprove")); 

      if (status == "pending") 
      { 

       e.Row.Cells[7].ForeColor = System.Drawing.Color.Yellow; 
      } 
      else if(status== "accept") 
      { 

       e.Row.Cells[7].ForeColor = System.Drawing.Color.Green; 
      } 
      else if (status == "reject") 
      { 

       e.Row.Cells[7].ForeColor = System.Drawing.Color.Red; 
      } 
     } 
    } 
Verwandte Themen