【发布时间】:2016-01-07 01:54:22
【问题描述】:
我正在遍历每一列并检索行列值。现在基于某些条件,我想为该特定行添加颜色。有可能吗
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>";
}
但它不显示为文本但不应用样式。如何为其添加颜色
前端
<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);
}
}
}
【问题讨论】:
-
DataTable是 C# 内存对象,而不是 UI 组件。显然你不能。您是否将此 DataTable 绑定到数据绑定控件或其他东西? -
我将它绑定到一个gridview
-
所以在gridview中应用样式,如果你想基于某些条件这样做,在
RowDataBound事件中进行。 -
样式应该在 GridView 而不是 DataTable 对象中完成。像这样的东西:
<HeaderStyle BackColor="#eeeeee" /> -
实际上我正在将数据表绑定到gridview。现在我必须添加列而不是编写额外的代码我想知道有什么更简单的吗?
标签: c# asp.net datatable datarow