2014-02-16 71 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); 

    } 
相關問題