Выделите строку GridView при выполнении условия
я использую VS2005 C# Server-side
кодировка.
мне любопытно узнать это в VS2005 version
, возможно highlight
строка в GridView при выполнении условия? Е. Г. Если колонки риск сохраняется как высокий в базе данных для этой конкретной строки, строка будет highlighted in Red
.
возможно ли это?
Edit:
текущий код:
protected void GridView1_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// do your stuffs here, for example if column risk is your third column:
if (e.Row.Cells[3].Text == "H")
{
e.Row.BackColor = Color.Red;
}
}
}
Я предполагаю, что ячейка столбца начинается с 0, поэтому моя находится в ячейке 3. Но цвет все равно не меняется.
кто-нибудь знает?
5 ответов
да, добавьте OnRowDataBound="yourGridview_RowDataBound"
к вашему gridview. Это событие запускается для каждой строки gridview.
в коде, есть это:
public void yourGridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// do your stuffs here, for example if column risk is your third column:
if (e.Row.Cells[2].Text == 'high')
{
e.Row.BackColor = Color.Red;
}
}
}
что-то подобное.
Использовать Событие RowDataBound. В этом случае вы получите, чтобы добавить CSS на основе вашего состояния
void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// Logic for High
if(e.Row.Cells[1].Text > 100)
//set color
e.Row.Attributes.Add("style", "this.style.backgroundColor = '#FFFFFF';");
}
}
вы должны подписаться на тег RowDataBound
событие сетки и удержание строки, в которой ваш столбец упоминает риск как высокий, затем установите BackColor
строки для выбора цвета подсветки
If (e.Row.RowType == DataControlRowType.DataRow)
{
//DataBinder.Eval(e.Row.DataItem,"Risk"))
//if this is high then set the color
e.Row.BackColor = Drawing.Color.Yellow
}
на RowDataBound
попробуй:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// searching through the rows
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(int.Parse(DataBinder.Eval(e.Row.DataItem,"Risk").ToString()) > 100)
{
e.Row.BackColor = Color.FromName("#FAF7DA"); // is a "new" row
}
}
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.BackColor = Color.Yellow;
Label l1 = (Label)e.Row.FindControl("lblage");
if(Convert.ToInt32( l1.Text)>=30)
{
e.Row.BackColor = Color.Tomato;
}
}