2012-12-31 291 views
4

我有一個簡單的RadGridView其中我想更改特定行(= 3個單元格)的文本顏色。不幸的是,此代碼不起作用:RadGridView更改文本顏色

//add new row to the grid 
EventLogGrid.Items.Add(new EventLogRow(eventType, occured, msg)); 

//change the color of the text of all cells if it's an exception 
if (eventType == EventLogger.EventType.Exception) 
{ 
    var rows = this.EventLogGrid.ChildrenOfType<GridViewRow>(); 
    rows.Last().Foreground = new SolidColorBrush(Colors.Yellow); 
} 

任何輸入,將不勝感激。

+0

什麼是指 「不工作」?什麼是錯誤?更加特別。 –

+0

你看過Telerik網站上的文檔嗎?他們有很多工作示例 – MethodMan

+0

@SonerGönül:沒有錯誤,它不會改變文本的顏色。 – Mike

回答

4

其實有一個非常簡單的解決方案:

  1. 附加一個事件處理程序:

    EventLogGrid.RowLoaded += EventLogGrid_RowLoaded; 
    
  2. 更改行的顏色:

    if (((EventLogRow)e.DataElement).MsgType == EventLogger.EventType.Exception) 
    { 
        e.Row.Foreground = new SolidColorBrush(Colors.Red); 
    } 
    
1

嘗試這樣的事情也Telerik的網站有噸真棒例子Telerik Radgrid Overview

protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
{ 
    //Check if the Item is a GridDataItem 
    if (e.Item is GridDataItem) 
    { 
     GridDataItem dataBoundItem = e.Item as GridDataItem; 

     if (int.Parse(dataBoundItem["yourColounName"].Text) == "Date") 
     { 
      dataBoundItem["yourColounName"].ForeColor = Color.Red; 
      dataBoundItem["yourColounName"].Font.Bold = true; 
     } 
    } 
} 

或者這可以爲你工作,我測試過這一點,它的工作確保您的列替換列的名稱如果你給我列名,因爲你有3列,我需要的拳頭列名命名..希望這是有道理的,你

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     GridDataItem item = (GridDataItem)e.Item; 
     TableCell cell = (TableCell)item["YourColumnName"]; 
     cell.BackColor = System.Drawing.Color.Yellow; 
    } 
} 
+0

好吧,我測試過這段代碼,它不起作用。看來你正在使用Telerik網絡庫,但我使用的是Telerik WPF庫,它似乎有所不同。不管怎麼說,還是要謝謝你。 – Mike

+0

我有相同的庫我會糾正我的答案並給你一個工作解決方案 – MethodMan

+0

RadGrid中第一列的名稱是什麼..然後我可以發佈一個你應該做什麼的例子..謝謝 – MethodMan