慢慢来

Emmet.C's Technology Blog

导航

如何在运行时定制DataGrid的显示风格?

Posted on 2005-03-01 01:19  Emmet.C  阅读(944)  评论(1编辑  收藏  举报
作为一个任务管理的界面,我们使用了一个DataGrid来显示任务列表。现在我们需要对显示风格作以下定制:
1。将任务状态为“已完成”的行以灰色(Gray)表示,并划上删除线。
2。将优先级别高的数据在主题前面加上红色的惊叹号图片(或者文字也可以,不过文字没有图片好看)
这样可以让用户明确的发现自己关注信息的重点。
此外我们在现有网页都使用了统一的CSS文件来控制式样。

我在databinding()之后使用了这样的代码来循环改变表格式样:
foreach(DataGridItem i in grdTasks.Items)
{
    if(i.Cells[0].Text="已完成")
    {
        i.Font.Strikeout = true;
        i.ForeColor = System.Drawing.Color.Gray;
    }
}

后来发现应该使用这种方法来加入界面表现代码
private void grdBulletins_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
    if(e.Item.Cells[0].Text == "已阅读")
    {
        e.Item.Attributes.Add("style","text-decoration: line-through; color: #808080");
    }  
}
刚开始的时候没有任何效果,后来才发现页面应用的CSS中所包含的TD式样优先级别比我所加入的Style级别要高(这也是我不明白的地方)。修改了一下CSS文件之后终于实现了第一个需求。

此外对于如何加图片至今没有任何头绪。:(
但是却没有任何效果,在网上也没有找到相关的资料。