Member239258 Ответов: 5

как изменить цвет строки gridview в зависимости от состояния базы данных


уважаемый друг,

Я работаю над этим asp.net Gridview с использованием c#.


Я хочу изменить цвет текста полного GridView в строке в зависимости от состояния.

В базе данных у меня есть столбец с результатом

если результат Pass элементы GridView цвет на зеленый
и если в результате удастся сделать в GridView цвет на красный.

жду ответа ура.
спасибо.

5 Ответов

Рейтинг:
2

ramaraog96

protected void GVpullout_RowDataBound(object sender, GridViewRowEventArgs e)
   {
       try
       {
           if (e.Row.RowType == DataControlRowType.DataRow)
           {

               DateTime dtTmp = DateTime.ParseExact(e.Row.Cells[5].Text, "dd/MM/yyyy", null);



               if (dtTmp > DateTime.Now)
               {
                   e.Row.BackColor = Color.FromName("#41A317");
               }
               else if (dtTmp == DateTime.Now.Date)
               {
                   e.Row.BackColor = Color.FromName("#F39110");

               }
               else
                   e.Row.BackColor = Color.FromName("#E33638");

           }
       }
       catch (Exception ex)
       {
           Log(ex.Message, ex.StackTrace);
           ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "Exception Message", "alert('You have an exception,please consult IT department')", true);
       }
   }


Рейтинг:
2

Sid_Joshi

Умолчанию.aspx-файл

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate><table border="1" style="border-collapse:collapse"><tr><th>ID</th><th>Title</th><th>Message</th></tr></HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:Label ID="lbl_ID" runat="server" Text='<%#Eval("ID") %>'/></td>
   <td><asp:Label ID="lbl_Msg" runat="server" Text='<%#Eval("Messge") %>'/></td>
    <td><asp:Label ID="lbl_Status" runat="server" Text='<%#Eval("Status") %>'/></td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>



Умолчанию.aspx-файл.в CS
строка s = "источник данных=localhost;начальный каталог=xxx;идентификатор пользователя=sa;пароль=pas@123";
SqlConnection Conn = новый SqlConnection(s);
Конн.Открыт();
SqlDataAdapter Adapter = новый SqlDataAdapter("Select * from t1", Conn);
DataTable Bind = новый DataTable();
Адаптер.Заполнить(Привязать);
Управления gridview1.Источник Данных = Привязать;
Управления gridview1.Привязку();
Конн.Близко();

по каждому элементу (пункт GridViewRow в управления gridview1.Строк)
{
Метка l = (метка)элемент.FindControl("lbl_Status");
если (л.Текст == "Не")
l.BackColor = система.Рисование.Цвет.Красный;

}


Рейтинг:
0

mcdubey

Создайте событие GridView_RowDataBound для вашего GridView

если (электронная.Подряд.RowType = DataControlRowType.Строкаданных)
{
//Поставьте свое условие здесь
Если(Условие Истинно)
{
e.Row.BackColor = рисование.Color.Red // это сделает цвет задней строки красным
}
}

или
вы можете играть с условным оператором с этим на aspx:
<%# система.Рисование.Цвет.FromName(Eval("BgColor").ToString())%>


Рейтинг:
0

Sharmanuj

Вот рабочий код.

DataTable dt;
        
protected void Page_Load(object sender, EventArgs e)
        {
            GenerateData();
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }

        private void GenerateData()
        {
            dt = new DataTable();
            dt.Columns.Add("ID", typeof(string));
            dt.Columns.Add("Name", typeof(string));
            dt.Columns.Add("Result", typeof(string));

            DataRow dr;
            dr = dt.NewRow();
            dr["ID"] = "1";
            dr["Name"] = "Kumar";
            dr["Result"] = "Pass";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["ID"] = "2";
            dr["Name"] = "Sharvesh";
            dr["Result"] = "Fail";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["ID"] = "3";
            dr["Name"] = "Priyam";
            dr["Result"] = "Pass";
            dt.Rows.Add(dr);

        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                GridViewRow grv = e.Row;
                if (grv.Cells[2].Text.Equals("Fail"))
                {
                    e.Row.BackColor = System.Drawing.Color.Red;
                }
                if (grv.Cells[2].Text.Equals("Pass"))
                {
                    e.Row.BackColor = System.Drawing.Color.Green;
                }
            }
            catch (Exception ex)
            { }
        }


Рейтинг:
0

Sharmanuj

Привет,

Для этого используйте событие RowDataBound для элемента управления GridView на странице codebehind. В этом случае вы можете проверить значение столбца, если значение столбца является Pass, а затем покрасить его зеленым цветом, для значения Fail покрасить его красным цветом.


Member239258

Пожалуйста, помогите мне, я посвежел. - понятия не имею.
я хочу сделать полное изменение цвета строки, а не столбца.

Пожалуйста, помогите, спасибо...