一个表里面有个字段是颜色数据,绑定到datagrid,如果碰见有颜色数据的就显示颜色,没有的就都是默认,这样如何去做?最好有简单代码

解决方案 »

  1.   

    private void dg_Query_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    ListItemType itemType = e.Item.ItemType;
    e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#fff7ce';cursor='hand';" ;
    if (itemType == ListItemType.Item )
    {
    e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#dedfde';";
    }
    if( itemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';";
    }
    }
      

  2.   

    我想要的不是鼠标放上去有颜色,我是想,某一行的颜色不一样,如果这行数据字段color里面有内容,那这行文字就有颜色,否则就默认
      

  3.   

    在那行上添加一個標誌的數據
    可以先判斷一次
    true的話就添顔色
      

  4.   

    后台
    protected string SetColor(string str)
    {
       return "<font color='red'>"+str+"</font>"
    }
    DataGrid内使用模板列
    比如
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# Setcolor(DataBinder.Eval(Container, "DataItem.Sex").ToString()) %>'>
    </asp:Label>
    </ItemTemplate>
      

  5.   

    <%@ Page Language="C#" Debug="False" Strict="True" Explicit="True" Buffer="True"%>
    <%@ Import Namespace="System" %>
    <html>
    <head>
    <title> New ASP.NET Document </title>
    </head>
    <body bgcolor="#FFFFFF" topmargin="0" marginheight="0">
    <script language="C#" runat="server"> void Page_Load(Object Source, EventArgs E) {
    //你自己的数据绑定代码
    }
    void DataGrid1_ItemCreated(Object sender, DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item)
    {
    //IsColor假设为数据库中的那个颜色字段
    String IsColor = ((DbDataRecord)e.Item.DataItem)["IsColor"].ToString(); if(IsColor.Length > 0)
    {
    e.Item.ForeColor = "#990000";
    }
    }
    }
    </script>
    <form runat="server" method="">
    <asp:DataGrid OnItemCreated="DataGrid1_ItemCreated" runat="server" id="DataGrid1">
    </asp:DataGrid>
    </form>
    </body>
    </html>