如果你只想根据值进行样式设置,我必须建议你在客户端使用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");
}
});
HTML标记:
<asp:GridView ID="GridView1" runat="server" CssClass="myGvClass">
</asp:GridView>
CodeBehind:
GridView1.DataSource = YourDataTable;
GridView1.DataBind();
屏幕截图:
![enter image description here](https://istack.dev59.com/cf9ap.webp)
代码:使用服务器端
在myGridview_DataBound事件中循环遍历GridView行,并检查单元格值的条件并设置相应的颜色。
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()
屏幕截图:
![enter image description here](https://istack.dev59.com/ZyLCY.webp)