C#根据DataTable中的不同值为asp:DataGrid中的不同行或单元格设置不同的颜色

要根据DataTable中的不同值为asp:DataGrid中的不同行或单元格设置不同的颜色,可以在服务器端代码中根据数据绑定的时机来动态设置样式。以下是一个示例,演示如何根据DataTable中的不同值为asp:DataGrid的不同行设置不同的背景颜色

<asp:DataGrid ID="dataGrid" runat="server" AutoGenerateColumns="False" OnItemDataBound="dataGrid_ItemDataBound">

<Columns>

<asp:BoundColumn DataField="ID" HeaderText="ID" />

<asp:BoundColumn DataField="Name" HeaderText="Name" />

<asp:BoundColumn DataField="Age" HeaderText="Age" />

</Columns>

</asp:DataGrid>

在上面的ASP.NET代码中,我们创建了一个asp:DataGrid,它有三个列:ID、Name和Age。

接下来,在服务器端代码中,可以使用OnItemDataBound事件来为每一行设置不同的颜色。以下是服务器端代码的示例:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

// 创建一个示例的DataTable

DataTable dt = new DataTable();

dt.Columns.Add("ID", typeof(int));

dt.Columns.Add("Name", typeof(string));

dt.Columns.Add("Age", typeof(int));

// 向DataTable添加一些示例数据

dt.Rows.Add(1, "Alice", 25);

dt.Rows.Add(2, "Bob", 30);

dt.Rows.Add(3, "Charlie", 35);

// 将DataTable绑定到DataGrid

dataGrid.DataSource = dt;

dataGrid.DataBind();

}

}

protected void dataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)

{

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

{

// 获取当前行的数据

DataRowView rowView = (DataRowView)e.Item.DataItem;

int age = Convert.ToInt32(rowView["Age"]);

// 根据不同的Age值设置不同的颜色

if (age < 30)

{

e.Item.BackColor = System.Drawing.Color.Yellow;

}

else if (age >= 30 && age < 40)

{

e.Item.BackColor = System.Drawing.Color.LightGreen;

}

else

{

e.Item.BackColor = System.Drawing.Color.LightBlue;

}

}

}

相关推荐
ALex_zry43 分钟前
C++ ORM与数据库访问层设计:Repository模式实战
开发语言·数据库·c++
潜创微科技--高清音视频芯片方案开发7 小时前
2026年C转DP芯片方案深度分析:从适配场景到成本性能的优选指南
c语言·开发语言
Thomas.Sir7 小时前
第三章:Python3 之 字符串
开发语言·python·字符串·string
刘景贤7 小时前
C/C++开发环境
开发语言·c++
Dxy12393102168 小时前
Python 根据列表中某字段排序:从基础到进阶
开发语言·windows·python
competes8 小时前
学生需求 交易累计积分,积分兑换奖品
java·大数据·开发语言·人工智能·java-ee
splage8 小时前
Java进阶——IO 流
java·开发语言·python
青桔柠薯片8 小时前
从C语言到裸机运行:i.MX6ULL 的 GPIO 控制与编译链接过程分析
c语言·开发语言·imx6ull
OasisPioneer8 小时前
现代 C++ 全栈教程 - Modern-CPP-Full-Stack-Tutorial
开发语言·c++·开源·github