У меня есть сетка с набором свойств alternatingRowStyle.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource2" OnRowDataBound="GridView1_RowDataBound"
onselectedindexchanged="GridView1_SelectedIndexChanged" AlternatingRowStyle-BackColor="#f0f1f3">
Я также хочу выделять строки, когда курсор перемещается следующим образом:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#ceedfc'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=''");
e.Row.Attributes.Add("style", "cursor:pointer;");
Проблема, с которой я столкнулся, заключается в том, что когда мышь перемещается мимо строки, она восстанавливается до белого, а не до предыдущего цвета, который отличается в половине строк. Я предполагал, что могу сохранить текущий цвет строки перед заменой его для каждого события «onmouseove», но это кажется дорогостоящим и тревожным, если быстрое движение мыши может все испортить.
Я не вижу свойства для строк gridview, которое сообщало бы мне, является ли это альтернативной строкой, но будет ли здесь лучше всего простое определение нечетности / четности в rowindex?
Есть предложения лучше?
Спасибо.
-Дэн