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;

}

}

}

相关推荐
Zenova EdgeOS1 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是1 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
FRing031 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Fatbobman(东坡肘子)2 小时前
快速消失的硬盘容量 -- 肘子的 Swift 周报 #160
开发语言·人工智能·redis·ios·swiftui·iphone·swift
揽星河..3 小时前
【C语言】底层程序设计
c语言·开发语言
JavaPub-rodert3 小时前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
海的透彻4 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat4 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
北京中科新远科技4 小时前
高速交换机端口预算怎么做?下行、上联、拆分和冗余计算框架
开发语言·php
xiaoye-duck4 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型