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;
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_33790894/article/details/132744163
今日推荐