4

RadGridView特定の行(= 3セル)のテキストの色を変更したい単純なものがあります。残念ながら、このコードは機能しません:

//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);
}

任意の入力をいただければ幸いです。

4

2 に答える 2

4

実際には非常に簡単な解決策があります。

  1. イベント ハンドラーをアタッチします。

    EventLogGrid.RowLoaded += EventLogGrid_RowLoaded;
    
  2. 行の色を変更します。

    if (((EventLogRow)e.DataElement).MsgType == EventLogger.EventType.Exception)
    {
       e.Row.Foreground = new SolidColorBrush(Colors.Red);
    }
    
于 2012-12-31T21:06:42.360 に答える
1

このようなことを試してみてください。また、Telerik の Web サイトには素晴らしい例がたくさんありますTelerik Radgrid の概要

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;
    }
}
于 2012-12-31T16:04:24.960 に答える