c# - 更改 gridview 行颜色 ASP.NET

标签 c# asp.net gridview

我有一个同时显示两个表的 gridview(使用合并方法)。我想更改第 0 行和第 11 行的行颜色。我知道我可以使用行数据绑定(bind)事件来做到这一点,但我不知道如何在运行时选择行。 enter image description here

我的代码隐藏。

public void mergetbl(DataTable DocVisTbl, DataTable cobtable)
{

    DataTable mergetable = DocVisTbl.Copy();
    mergetable.Merge(cobtable);

    DataRow row;
    row = mergetable.NewRow();
    row["Stakeholder"] = "Número de Médicos";
    mergetable.Rows.InsertAt(row, 0);
    row = mergetable.NewRow();
    row["Stakeholder"] = "Médicos Visitados";
    mergetable.Rows.InsertAt(row, 11);


    DataTable mergetable_Clone = mergetable.Clone(); //just copy structure, no data

    for (int i = 0; i < mergetable_Clone.Columns.Count; i++)
    {
        if (mergetable_Clone.Columns[i].DataType != typeof(string))
            mergetable_Clone.Columns[i].DataType = typeof(string);
    }

    foreach (DataRow datarow in mergetable.Rows)
    {
        mergetable_Clone.ImportRow(datarow);

    }

    for (int x = 1; x < mergetable_Clone.Columns.Count; x++)
    {
        mergetable_Clone.Rows[4][x] = mergetable_Clone.Rows[4][x] + "%";
        mergetable_Clone.Rows[7][x] = mergetable_Clone.Rows[7][x] + "%";
        mergetable_Clone.Rows[10][x] = mergetable_Clone.Rows[10][x] + "%";
        mergetable_Clone.Rows[15][x] = mergetable_Clone.Rows[15][x] + "%";
        mergetable_Clone.Rows[18][x] = mergetable_Clone.Rows[18][x] + "%";
        mergetable_Clone.Rows[21][x] = mergetable_Clone.Rows[21][x] + "%";

    }
    MergeGrid.DataSource = mergetable_Clone;
    MergeGrid.DataBind();        
}

protected void MergeGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //if (e.Row.RowType == DataControlRowType.DataRow)
    //{
    //
    //}
}

我的 CSS 代码

 .Grid {   
    width: auto; 
    background-color: #fff;   
    margin: 5px 0 10px 0;   
    border: solid 2px #525252;   
    border-collapse:collapse;   }  

/*Gridview table data*/
.Grid td {   
    padding: 2px;  
    font-family: Calibri; 
    border: solid 1px #c1c1c1;   
    color: #000000;   
    text-align:right;
    padding: 2px 4px 3px 4px;}  

/*Gridview table header*/
.Grid th {   
    padding: 4px 2px;   
    color: #fff; 
    font-family:Calibri;
    background: #424242 url(Images/gridheader.png) repeat-x top;   
    border-left: solid 1px #525252;   
    font-size: 95%;   }  

/*Gridview alternate rows*/
.Grid .alt { background: #fcfcfc url(Images/grid-alt.png) repeat-x top; }  

最佳答案

代码中的一个例子

protected void MergeGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowIndex == 0) //Select the row
        {
            e.Row.BackColor = System.Drawing.Color.FromArgb(255, 0, 0);

            //or you can select the color
            //e.Row.BackColor = System.Drawing.Color.Red;
        }
    }
}

希望对你有帮助。

关于c# - 更改 gridview 行颜色 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294374/

相关文章:

android - 在 GridView 中使用 setGravity()

android - 第一个项目很大的 GridView

c# - 以ajax方式将项目添加到列表框

c# - 使用数据注释的 WPF MVVM 验证

c# - Redis Booksleeve 客户端,ResultCompletionMode.PreserveOrder 不工作

c# - 如何覆盖 MongoDB Gridfs 中的文件?

asp.net - 照片网站的建议数据库架构

asp.net MVC ModelState.IsValid 返回 false

javascript - 自动滚动到 Gridview asp.net 中最后插入的行

c# - 在不同线程上访问 WebBrowser