2014-02-16 40 views
1

我有超链接在DataGrid控件如何动态地更改超链接的颜色在DataGrid中在Asp.net

enter image description here

我想要做的是,我需要(根据条件)来动态改变超链接的颜色

如果状态=登录用户名,然后颜色应该是绿色的,如果状态=注销用户名,然后颜色应与红色。

我尝试过以下,但无法获得第一列或文本。

同样的事情,我可以申请其余的列期望第一个(超链接)。

enter image description here

请帮助我。

enter image description here

回答

1

您需要更正此两件事情:

  1. 细胞指数是基于0。你应该有rv.Row.ItemArray[2]而不是 的rv.Row.ItemArray[3]

  2. 单元格指的是<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> 

以下是它的外观:

enter image description here

+0

非常感谢你.... :) – Nimesh

1

你可以做到以下几点:

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

    } 
相关问题