我有超链接在DataGrid控件如何动态地更改超链接的颜色在DataGrid中在Asp.net
我想要做的是,我需要(根据条件)来动态改变超链接的颜色
像
如果状态=登录用户名,然后颜色应该是绿色的,如果状态=注销用户名,然后颜色应与红色。
我尝试过以下,但无法获得第一列或文本。
同样的事情,我可以申请其余的列期望第一个(超链接)。
请帮助我。
我有超链接在DataGrid控件如何动态地更改超链接的颜色在DataGrid中在Asp.net
我想要做的是,我需要(根据条件)来动态改变超链接的颜色
像
如果状态=登录用户名,然后颜色应该是绿色的,如果状态=注销用户名,然后颜色应与红色。
我尝试过以下,但无法获得第一列或文本。
同样的事情,我可以申请其余的列期望第一个(超链接)。
请帮助我。
您需要更正此两件事情:
细胞指数是基于0。你应该有rv.Row.ItemArray[2]
而不是 的rv.Row.ItemArray[3]
。
单元格指的是<td>
而不是<a>
标记。
我会切换类的<td>
在这样的代码:
protected void dgBoundItems(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView rv = (DataRowView)e.Item.DataItem;
if (rv.Row.ItemArray[2].ToString() == "Sign In")
{
e.Item.Cells[0].Attributes.Add("class", "signin");
}
else
{
e.Item.Cells[0].Attributes.Add("class", "signout");
}
}
}
而且在我的网页我已经添加CSS类像这样(页头):
<head runat="server">
<title></title>
<style>
.signout a:link {
font-weight:normal;
color:red;
}
.signin a:link {
font-weight:bold;
color:green;
}
</style>
</head>
以下是它的外观:
你可以做到以下几点:
if (YourConditionOverHere){
e.Item.Cells[0].CssClass = HyperLink1.CssClass = "CssStyle2";
else
e.Item.Cells[0].CssClass = HyperLink1.CssClass = "CssStyle1";
//Or you can use
//e.Item.Cells[0].BorderColor = System.Drawing.Color.Black;
//Or
//e.Item.Cells[0].Color.FromArgb(0x0000aaaa);
}
非常感谢你.... :) – Nimesh