Ошибка при установке цвета строки GridView, когда столбец имеет определенное значение - PullRequest
0 голосов
/ 10 февраля 2012

Я хочу установить цвет строки вида сетки, если у определенного столбца есть значение. Но я получил ошибку о нулевой ссылке в моем DIVSTATUS.

Мой ASPX

        <asp:TemplateField HeaderText="Status">
            <ItemTemplate>                
                <div style="width:70px;" id="divStatus" runat="server"><%# Eval("DscStatus")%></div>
            </ItemTemplate>
        </asp:TemplateField>

Мой код позади

                if (GridView1.Rows.Count > 0)
                {
                    for (int i = 0; i < GridView1.Rows.Count; i++)
                    {
                        HtmlContainerControl divstatus = (HtmlContainerControl)GridView1.Rows[i].FindControl("divstatus");
                            if (divstatus != null)
                            {
                                if (divstatus.InnerText == "Andamento Project")
                                {
                                    GridView1.Rows[i].BackColor = System.Drawing.Color.Navy;
                                    GridView1.Rows[i].ForeColor = System.Drawing.Color.White;
                                }
                            }
                    }
              }

My Rendered HTML

<td>
     <div style="width:70px;">Andamento Project</div>
</td>

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Используйте свойство RowDataBound и создайте код, как показано ниже ... вам не нужно получать статус div, вы просто получаете свой тип данных, и в этом типе данных вы получаете значение вашего свойства, используя значение свойства, которое вы можете использовать. решить цвет вашего ряда

protected void grdCAPRate_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       yourtype obj=  (yourtype)e.Row.DataItem;

           if (obj.DscStatus == "Andamento Project")    
            e.Row.BackColor = System.Drawing.Color.Navy;
          else
           e.Row.ForeColor=System.Drawing.Color.White;                                 

     }                
}
0 голосов
/ 10 февраля 2012
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            HtmlContainerControl divstatus = (HtmlContainerControl) e.Row.FindControl("divstatus");
            if (divstatus != null)
            {
                if (divstatus.InnerText == "Andamento Project")
                {
                    e.Row.BackColor = Color.Navy;
                    e.Row.ForeColor = Color.White;
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...