0

嘿伙计们,我正在尝试做一些非常简单的事情。我正在检查我的数据行中的数据列,如果它 > 0 我希望数据列表中的项目背景颜色为绿色,如果它 < 0 保持透明...

if (e.Item.ItemType == ListItemType.Item ||
         e.Item.ItemType == ListItemType.AlternatingItem)
    {
        DataRowView drv = (DataRowView)(e.Item.DataItem);
        int rating = int.Parse(drv.Row["rating"].ToString());

        if (rating > 0)
        {
            e.Item.BackColor = System.Drawing.Color.Green;
        }

    }

我已经使用调试器进行了调试,它达到了颜色没有改变的所有条件。我知道它必须是一些简单的东西,我只是看不到它。

4

2 回答 2

2

您需要使用 e.Item.FindControl 来实例化要更改其背景颜色的控件的实例。

if (e.Item.ItemType == ListItemType.Item ||
     e.Item.ItemType == ListItemType.AlternatingItem)
    {
        DataRowView drv = (DataRowView)(e.Item.DataItem);
        int rating = int.Parse(drv.Row["rating"].ToString());

        if (rating > 0)
        {
            Label lbl = (Label)e.Item.FindControl("yourLabelIDHere");
            lbl.BackColor = System.Drawing.Color.Green;

        }
    }
于 2010-05-17T21:32:32.583 回答
1

这段代码放在哪里?它需要在OnRowDataBound()活动中。看起来您可能会将上述内容放入OnItemDataBound().

于 2010-05-17T20:47:23.173 回答