c# - 使用绑定(bind)数据集中的值设置 Gridview 行背景颜色

标签 c# asp.net gridview datatable

我有一个包含 Column ID

的 GridView

我有一个包含两列的数据表

ID
DONE

我将 DataTable 中的 ID 列绑定(bind)到 GridView。 直到没有它的罚款。

但现在我需要根据 DataTable 中的 DONE 列值设置 GridView 行的背景颜色。(如果 DONE 值为 true 必须更改行背景颜色。)

如何在不将 DONE 行绑定(bind)到 GridView 的情况下实现这一目标?

最佳答案

为您的 GridView 创建 GridView1_RowDataBound 事件。

if (e.Row.RowType == DataControlRowType.DataRow)
{
    //Check your condition here
    //Get Id from here and based on Id check value in the 
    //underlying dataSource Row where you have "DONE" column value
    // e.g.
    // (gridview.DataSource as DataTable), now you can find your row and cell 
    // of "Done"
    If(Condition True)
    {
        e.Row.BackColor = Drawing.Color.Red;  // your color settings 
    }
}

示例代码片段:

protected void EmployeeAvailabilityGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
               if (e.Row.RowType == DataControlRowType.DataRow)
                {                  
                    if(Convert.ToBoolean(DataBinder.Eval(e.Row.DataItem, "DONE")))
                    {
                        e.Row.BackColor = System.Drawing.Color.LightPink;
                    }
                }
            }
            catch (Exception ex)
            {
                //ErrorLabel.Text = ex.Message;
            }
        }

更详细的实现请引用以下链接:
Change GridView row color based on condition

注意:如果 DataSource 中不存在该行,那么您必须有一些逻辑从其他地方获取它。可能是您将 ID 作为另一个表中的外键。

关于c# - 使用绑定(bind)数据集中的值设置 Gridview 行背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153579/

相关文章:

c# - .NET Core 2 DLL 引用与 C++ 代码运行时错误

c# - C# double 格式的问题

c# - 如何在C#中获取多维数组的行/列的长度?

asp.net - 如何在 ASP.Net 项目中包含 jQuery?

asp.net-mvc - 在 Asp.net MVC 中创建分页 gridview 样式部分 View 的最佳方法是什么?

php - 如何在 Yii2 的 GridView::widget 的搜索框中使用带过滤功能的简单下拉列表?

c# - EXE文件中的方法调用在哪里?

c# - 从 MVC3 Action 中获取值(value)

javascript - 使用纯 Javascript/AJAX 实现客户端基于 token 的身份验证

c# - 在 GridView 列中拟合长文本