Как изменить цвет выделенной строки, даже если она имеет условие?
У меня есть gridview, и если условие = true/accept, то строка будет зеленой. В противном случае-Белый. Если я выберу нормальную (белую, без условий) строку и нажму на нее, цвет изменится на синий.
Но если я нажму на красную строку, она все равно будет красной. Я хочу, чтобы, несмотря ни на что, он всегда менял цвет на синий, если я его выбираю.
Что я уже пробовал:
<pre lang="c#">protected void RowDataBound(object sender, GridViewRowEventArgs e) { e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(sender as Control, "Select$" + e.Row.RowIndex); if (Data.Rows[e.Row.RowIndex]["accept"].ToString() == "3") { e.Row.CssClass += " green"; } if (e.Row.RowState == DataControlRowState.Selected) { e.Row.CssClass += " blue"; } }
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { if (GridView1.SelectedIndex > -1) { foreach (GridViewRow row in ((GridView)sender).Rows) { if (row.RowIndex == GridView1.SelectedIndex) { row.CssClass += " blue"; } else { row.CssClass = row.CssClass.Replace(" blue", string.Empty); } } } }
Afzaal Ahmad Zeeshan
Затем, прежде чем изменить цвет на синий, проверьте, имеет ли строка красный цвет. Если цвет красный, вернитесь.
Richard Deeming
Когда строка устанавливается в красный цвет? Вы упомянули белый и зеленый, с синим для выбранного ряда, но нет никакого упоминания о красном...
Скорее всего, это вопрос специфики. Попробуйте переместить .blue
Правило CSS ниже других правил цвета в вашем файле CSS.