如果您只想根据值设置样式,我必须建议您使用 Jquery 或 javaScript 在客户端进行。
此外,它不会影响性能,因为它在客户端而不是在RowDataBound上执行
代码:使用客户端- (我推荐更多)
在这里您可以设置尽可能多的条件以取决于您的类值,无需编写额外的服务器端代码
$(document).ready(function () {
$(".myGvClass").find("td").each(function () {
if ($(this).text() == "Class B") {
$(this).css("color", "Red");
}
if ($(this).text() == "Class A") {
$(this).css("color", "Blue");
}
if ($(this).text() == "Class C") {
$(this).css("color", "green");
}
// ..... and so on
});
HTML 标记:
<asp:GridView ID="GridView1" runat="server" CssClass="myGvClass">
</asp:GridView>
代码隐藏:
GridView1.DataSource = YourDataTable;
GridView1.DataBind();
截屏:
代码:
在事件中使用服务器端循环遍历 Gridview 行myGridview_DataBound
,并检查条件单元格值并设置相应的颜色。
protected void myGridview_DataBound(object sender, EventArgs e)
{
for (int i = 0; i <= myGridview.Rows.Count - 1; i++)
{
string myClassVal = myGridview.Rows[i].Cells[2].Text;
if (myClassVal == "Class A")
{
myGridview.Rows[i].Cells[2].BackColor = Color.Green;
}
else if (myClassVal == "Class B")
{
myGridview.Rows[i].Cells[2].BackColor = Color.Red;
}
else
{
myGridview.Rows[i].Cells[2].BackColor = Color.Orange;
}
}
}
HTML:
<asp:GridView ID="myGridview" runat="server" ondatabound="myGridview_DataBound">
</asp:GridView>
代码背后:
myGridview.DataSource = YourDataTable;
myGridview.DataBind();
截屏: