<%@ Import Namespace="System.Drawing" %><asp:Label runat="server" ForeColor='<%# Color.FromName(DataBinder.Eval(Container.DataItem, "YourColorColumn").ToString()) %>' Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' />

解决方案 »

  1.   

    对不起。资质差。我用的是vs.net.请问这段代码应该如何插入?这个是代码///////
    string strSQL = "SELECT titleName + '(' + titleType + ')' AS title ,dir ,color FROM title";
    DataSet objDataSet = new DataSet();
    SqlConnection objConnection = new SqlConnection(strConnection);
    SqlDataAdapter objAdapter = new SqlDataAdapter(strSQL,objConnection);
    objAdapter.Fill(objDataSet,"title");
    DataView objDataView = new DataView(objDataSet.Tables["title"]);
    dgNameList.DataSource = objDataView;
    dgNameList.DataBind();
    以下是aspx文件
    <form id="Left" method="post" runat="server">
    <FONT face="宋体">
    <asp:DataGrid id="dgNameList" runat="server" GridLines="None" AutoGenerateColumns="False" ShowHeader="False">
    <Columns>
    <asp:HyperLinkColumn Target="fraRightFrame" DataNavigateUrlField="dir" DataTextField="title"></asp:HyperLinkColumn>
    </Columns>
    </asp:DataGrid></FONT>
    </form>
      

  2.   

    >>>>DataGrid如何根据表中的一个值来确定其中一行地颜色?<asp:DataGrid id="dgNameList" runat="server" GridLines="None" AutoGenerateColumns="False" ShowHeader="False"
    OnItemDataBound="DoItemDataBound"
    >
    <script language="C#" runat="server">  protected void DoItemDataBound(object sender, DataGridItemEventArgs e)
      {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
           {
    string sColor = DataBinder.Eval(e.Item.DataItem, "YourColorColumn" ).ToString();
                              for (int i=0; i < e.Item.Cells.Count; i++)
    e.Item.Cells[i].BackColor = Color.FromName(sColor); }
        }
    </script>
      

  3.   

    e.Item.Cells[i].BackColor
    ===>
    e.Item.Cells[i].ForeColor
      

  4.   

    protected void DoItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
    for (int i=0; i < e.Item.Cells.Count; i++)
    {
    //e.Item.Cells[i].BackColor = Color.FromName(sColor);
    e.Item.Cells[i].ForeColor = Color.FromName(sColor);
    }
    }
    }不行~
      

  5.   

    e.Item.Cells[i].Style["color"] = sColor;ore.Item.Cells[i].Attributes["style"] = "color:" + sColor;
      

  6.   

    protected void DoItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
    for (int i=0; i < e.Item.Cells.Count; i++)
    {
    //e.Item.Cells[i].BackColor = Color.FromName(sColor);
    //e.Item.Cells[i].ForeColor = Color.FromName(sColor);
    //e.Item.Cells[i].Style["color"] = sColor;
    e.Item.Cells[i].Attributes["style"] = "color:" + sColor;
    }
    }
    }
    以上全部测试都不行。~
      

  7.   

    用上面最后的方法。
    输出是
    <td style="color:red"><a href="/MyMopSite/db/2003-01-15/guest.xml       "target="fraRightFrame" >标题(综合贴)</a></td>
      

  8.   

    e.Item.Cells[i].ForeColor = Color.FromName(sColor);
    应该是好用的。
    我用vb语言试验的结果是:
    sub DoItemDataBound(sender as object, e as DataGridItemEventArgs )
    dim sColor as string
    if(e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem) then
    e.Item.Cells(0).ForeColor = Color.FromName("red")
    end if
    end sub
    效果达到
      

  9.   

    另外。我 那个列是url列。不知道是否有印象呢?
      

  10.   

    for (int i=0; i < e.Item.Cells.Count; i++)
    {
        for (int j=0; j < e.Item.Cells[i].Controls.Count; j++) e.Item.Cells[i].Controls[j].ForeColor = Color.FromName(sColor);
    }
      

  11.   

    “System.Web.UI.Control”并不包含对“ForeColor”的定义
      

  12.   

    for (int i=0; i < e.Item.Cells.Count; i++)
    {
        for (int j=0; j < e.Item.Cells[i].Controls.Count; j++)   
        {
              if (e.Item.Cells[i].Controls[j] is WebControl)
       ((WebControl)e.Item.Cells[i].Controls[j]).ForeColor=Color.FromName(sColor);
      if (e.Item.Cells[i].Controls[j] is HtmlControl)
       ((HtmlControl)e.Item.Cells[3].Controls[j]).Style["color"]= sColor;     }
    }
      

  13.   

    sorry((HtmlControl)e.Item.Cells[3].Controls[j]).Style["color"]= sColor;
    ===>
    ((HtmlControl)e.Item.Cells[i].Controls[j]).Style["color"]= sColor;
      

  14.   

    actually, I was being stupid, you could just doprotected void DoItemDataBound(object sender, DataGridItemEventArgs e)
    {
       if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
      {
         e.Item.Style["color"] = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString();
       }
    }
      

  15.   

    ?? 如果是?SelectedItem,EditItem
    这个会好点:
    if(e.Item.DataItem!=null)
    {
       ...
    }但是tr的style中的color好象不是很好用哦。
    如果a有设置全局的style颜色,没有办法改变a的颜色的。----------------
    to楼主:想翻我版啊???
      

  16.   

    使用最后的那段代码后依旧无法实现字体的颜色。
    html输出如下<table cellspacing="0" rules="all" border="1" id="dgNameList" style="border-collapse:collapse;">
    <tr style="color:red       ;">
    <td><a href="/MyMopSite/db/2003-01-15/guest.xml       " target="fraRightFrame">这个是我自己的大杂烩哦。大家一定要多多光顾。来的早的人可以多拿mp哦。哈哈                            (综合贴)</a></td>
      

  17.   

    protected void DoItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    string sColor = DataBinder.Eval(e.Item.DataItem, "title_color" ).ToString(); for (int i=0; i < e.Item.Cells.Count; i++)
    {
    for (int j=0; j < e.Item.Cells[i].Controls.Count; j++)   
    {
    if (e.Item.Cells[i].Controls[j] is WebControl)
    ((WebControl)e.Item.Cells[i].Controls[j]).ForeColor=Color.FromName(sColor);
    if (e.Item.Cells[i].Controls[j] is HtmlControl)
    ((HtmlControl)e.Item.Cells[i].Controls[j]).Style["color"]= sColor;
    }
    } }
    }这段测试通过。不知道其他的为什么不行呢?还有我看这里用了两个循环。会不会印象性能?
      

  18.   

    <asp:HyperLinkColumn style='<%# "color:"+DataBinder.Eval(Container.DataItem,"什么字段名来着").ToString() %>;'
    就算了。.
      

  19.   

    then use that double loops
      

  20.   

    HyperLinkColumn does not have a property named 'style'
      

  21.   

    A.创建一个My:HyperLinkColumn,添加 StyleColor 属性.
    B.直接用<A href='<% #  %>' ... (没有runat=server)
    C.<asp:HyperLinkColumn OnDataBinding="hlc_DataBinding" 
    D.在DoItemDataBound里,找到所有的HyperLinkColumn ?
    E.<asp:HyperLinkColumn CssStyle='<%# ... %>' ...有多少颜色就要定义多少...