代码之家  ›  专栏  ›  技术社区  ›  jr3

datalist itemdatabound事件在条件下更改项目bg颜色时出现问题

  •  0
  • jr3  · 技术社区  · 14 年前

    嘿,伙计们,我想做一些非常简单的事情……我正在检查数据行中的数据列,如果它是>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;
            }
    
        }
    

    我已经使用了调试器,它符合所有条件,颜色只是没有改变。我知道一定是很简单的事情,我就是看不见。

    2 回复  |  直到 14 年前
        1
  •  2
  •   TheGeekYouNeed    14 年前

    需要使用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;
    
            }
        }
    
        2
  •  1
  •   David Neale    14 年前

    把这个代码放在哪里?它需要在 OnRowDataBound() 事件。你好像把上面的东西放进去了 OnItemDataBound() .