Member 13920580 Ответов: 4

Изменение цвета gridview при условии


post removed due to security reasons
post removed due to security reasons
post removed due to security reasons
post removed due to security reasons
post removed due to security reasons


Что я уже пробовал:

Code removed
Code removed
Code removed
Code removed
Code removed
Code removed
Code removed

4 Ответов

Рейтинг:
19

Member 13920580

Я использовал TemplateField вместо BoundField, который решил мою проблему, это может помочь кому-то еще, поэтому я помещу коды здесь.


<asp:TemplateField HeaderText="وضعیت">
    <ItemTemplate>
        <span style="background-color: <%# (Eval("ostatus").ToString() == "Accepted") ? "green;" : (Eval("ostatus").ToString() == "Denied") ? "red;" : "blue;" %>">
            <%# Eval("ostatus") %>
        </span>
    </ItemTemplate>
</asp:TemplateField>


Vincent Maverick Durano

Спасибо, что поделились решением. Рад, что это сработало для тебя.

Рейтинг:
1

aparnalakshmi

использовать jQuery
передайте индекс столбца
и используйте this.text() для строки evry и сравните значение в условии if
и примените файл .css для изменения цвета
https://www.aspsnippets.com/Articles/Dynamically-change-GridView-Row-Background-Color-based-on-condition-in-ASPNet-using-C-and-VBNet.aspx


Member 13920580

не могли бы вы быть более конкретными? Я новичок в этом деле asp.net

aparnalakshmi

пройдите по ссылке которую я вам предоставил

Member 13920580

Я сделал то, что он сказал по этой ссылке, но все же я не могу заставить его работать, это код, который я использовал


        protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string ostatus = e.Row.Cells[8].Text;

                foreach (TableCell cell in e.Row.Cells)
                {
                    if (ostatus == "Accepted")
                    {
                        cell.BackColor = Color.Red;
                    }
                }
            }
        }

Рейтинг:
1

aparnalakshmi

я хорошо это будет полезно для других


Vincent Maverick Durano

Пожалуйста, напишите ответ в виде комментариев, а не решения. Спасибо.

Рейтинг:
0

Vincent Maverick Durano

попробуйте что-нибудь вроде этого:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
          DataRowView drv = e.Row.DataItem as DataRowView;
          if (drv["ostatus"].ToString().ToLower().Equals("accepted"))
          {
              //to change the Row color
              e.Row.BackColor = System.Drawing.Color.Green;

              //to change the Cell color
              e.Row.Cells[8].BackColor = System.Drawing.Color.Green;
          }
     }
}


Member 13920580

Изменил GV id на 5 и попробовал его на codebehind но это не сработало :(

Vincent Maverick Durano

BoundField должен работать. Вы просто должны сказать нам, что именно вы имели в виду под “это не работает”. Вы получаете ошибку? Вы пробовали отлаживать код и входить в него, чтобы понять, что происходит?