簡體   English   中英

更改Gridview組的行背景色

[英]Changing Gridview groups row background color

我正在一個asp.net應用程序上。 我有一個gridview,根據訂單號將結果分組:

我正在使用此代碼:

void GroupGridView(GridViewRowCollection gvrc, int startIndex, int total)
    {
        if (total == 0) return;
        int i, count = 1;
        ArrayList lst = new ArrayList();
        lst.Add(gvrc[0]);
        var ctrl = gvrc[0].Cells[startIndex];

        for (i = 1; i < gvrc.Count; i++)
        {
            TableCell nextCell = gvrc[i].Cells[startIndex];
            Label lblNextOrderID = nextCell.FindControl("lblOrderID") as Label;
            Label lblOrderID = ctrl.FindControl("lblOrderID") as Label;
            if (lblOrderID.Text == lblNextOrderID.Text)
            {
                count++;
                nextCell.Visible = false;
                lst.Add(gvrc[i]);
            }
            else
            {
                if (count > 1)
                {
                    ctrl.RowSpan = count;
                    ctrl.VerticalAlign = VerticalAlign.Middle;
                    GroupGridView(new GridViewRowCollection(lst), startIndex + 1, total - 1);
                }

                count = 1;
                lst.Clear();
                ctrl = gvrc[i].Cells[startIndex];
                lst.Add(gvrc[i]);
            }
        }
        if (count > 1)
        {
            ctrl.RowSpan = count;
            GroupGridView(new GridViewRowCollection(lst), startIndex + 1, total - 1);
        }
        count = 1;
        lst.Clear();
    }

並這樣稱呼它:

  gvOrderHistory.DataSource = gridDataSource;
                gvOrderHistory.DataBind();
                GroupGridView(gvOrderHistory.Rows, 0, 1);

我正在跟蹤此鏈接 現在,我希望備用組的顏色應該不同(而不是備用行)。 一組應該是綠色的。 然后下一組白色,然后第三組再次綠色,然后白色,依此類推。 這個怎么做 ?

您可以將一列添加到gridview並為不同的組提供不同的編號,然后在網格的RowDataBound事件處理程序中,可以基於列編號更改行的顏色。

您可以像這樣設置行的顏色:
e.Row.BackColor = System.Drawing.Color.LightBlue;

如果林先生正確閱讀您的代碼,難道您不可以僅引用ctrl變量並使用attributes屬性嗎? 例如:

ctrl.Attributes.Add("class", "classname");

我不確定您要將此變量應用到哪個變量,但這也可以用於nextCell TableCell對象。

HTH

首先向您的aspx表單添加一個CSS類

<style>
    .green { background-color: #00ff21; }
</style>

然后添加額外的代碼,如下所示

        ....
   ==>  int x = 0;
        for (i = 1; i < gvrc.Count; i++)
        {

   ==>      if(x % 2 == 0) gvrc[i].CssClass = "green";
   ==>      x++;

            TableCell nextCell = gvrc[i].Cells[startIndex];
            if (ctrl.Text == nextCell.Text)
            {

             ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM