C# 是否可以将样式添加到System.Data.DataRow

C# 是否可以将样式添加到System.Data.DataRow,c#,asp.net,datatable,datarow,C#,Asp.net,Datatable,Datarow,我将遍历每一列并检索行-列值。现在根据一些条件,我想给那一行加上颜色。这可能吗 foreach (var columnName in ColumnNames) { if(something) //true , I want ot add colour and I tried dr[columnName] = "<span style='background-color:yellow;'>" + row[columnName] + "</span>"; }

我将遍历每一列并检索行-列值。现在根据一些条件,我想给那一行加上颜色。这可能吗

foreach (var columnName in ColumnNames)
{
 if(something) //true  , I want ot add colour and I tried

    dr[columnName] = "<span style='background-color:yellow;'>" + row[columnName] + "</span>";
}
foreach(ColumnNames中的var columnName)
{
如果(某物)//是真的,我想添加颜色,我试过了
dr[columnName]=“”+行[columnName]+“”;
}
但它不是显示为文本,而是不应用样式。如何给它添加颜色

前端

<asp:GridView ID="gv" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" AutoPostBack="true" runat="server"/>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" AutoPostBack="true" OnCheckedChanged="chkItem_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

CS

foreach(GridViewRow gridRow in myGridview.Rows)
{
    for(int i = 0; i < myGridview.Columns.Count, i++)
    {
        if(gridRow.Cells[i].Text.Contains('*'))
        {
           //Do your thing 
           gridRow.Cells[i].Text=gridRow.Cells[i].Text.Replace(@"*", "");
           gridRow.Cells[i].Style.Font = 
            new Font("Ariel", 8, FontStyle.Underline);
        }
    }
}
foreach(myGridview.Rows中的gridview行gridRow)
{
对于(int i=0;i
您可以像这样使用
RowDataBound
事件:-

在gridview中附加事件:-

<asp:GridView ID="gv" runat="server" OnRowDataBound="gv_RowDataBound"></asp:GridView>

这里您需要相应地指定从
0

DataTable
开始的单元索引,它是一个C#in memory对象,而不是UI组件。显然你不能。是否将此DataTable绑定到databound控件或其他对象?我将其绑定到gridview,因此请在gridview中应用样式,如果要基于某些条件执行此操作,请在
RowDataBound
事件中执行。应在gridview而不是DataTable对象中执行样式设置。类似这样:
实际上我正在将datatable绑定到gridview。现在我必须添加列,而不是编写额外的代码,我想知道还有什么更简单的事情要做吗?我添加了标记,出于某种原因,它只显示一列,我从DataTable绑定的列不来自@RahulSingh@DheerajPatnaik-显示一列意味着什么?现在gridview没有绑定?我已经添加了cs文件,在我的循环中,它将列显示为计数1,即,ofcheckboxes@DheerajPatnaik-为什么要添加一个
foreach
循环?你在哪里叫它
RowDataBound
事件对每一行进行迭代,您只需在
.Cells[2]
中指定列号即可,无需循环。感谢您它为我@Rahul完成了此操作
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.Cells[2].Text == "Youvalue") //condition here
        {
             e.Row.BackColor = System.Drawing.Color.Yellow;
        }
     }
}