#asp.net #gridview
#asp.net #просмотр сетки
Вопрос:
ниже приведен код, который работает нормально, но единственная проблема, с которой я сталкиваюсь, заключается в следующем: он переопределяет альтернативную строку backgroundColor='white'
как я могу иметь свой оригинальный альтернативный цвет при включении?
<AlternatingRowStyle BackColor="#DEEEE9" Font-Size="8pt" />
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#C2D69B'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
e.Row.Attributes.Add("style", "cursor:pointer;");
}
Ответ №1:
Вы можете указать, какой именно цвет должен быть восстановлен на onmouseout
:
if (e.Row.RowType == DataControlRowType.DataRow)
{
string bgcolor = "white"
if (e.Row.RowState == DataControlRowState.Alternate)
{
bgcolor = "#DEEEE9";
}
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#C2D69B'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='" bgcolor "'");
e.Row.Attributes.Add("style", "cursor:pointer;");
}
Комментарии:
1. почему вы сделали бы это вместо того, чтобы использовать то, что встроено в функциональность таблицы стилей. Классы Css даже предоставляют для этого функциональность с помощью элемента hover .
Ответ №2:
Я не понимаю, почему бы просто не удалить «e.Row.Attributes.Добавить(«onmouseout», «this.style.backgroundColor=’white'»);» и установить для него цвет исходного альтернативного???
Комментарии:
1. затем цвет выделения останется и не вернется обратно, пока не будет наведен курсор мыши на другую строку. Он показывает «выбранный», когда на самом деле это было просто наведение курсора.
Ответ №3:
вместо указания определенного цвета используйте css-атрибуты hover. Смотрите: http://www.codeproject.com/KB/webforms/MouseHoverUsingCSS.aspx
Ответ №4:
Попробуйте что-то вроде этого:
var color = "<%=System.Drawing.ColorTranslator.ToHtml(GridView1.AlternatingRowStyle.BackColor)%>";
Ответ №5:
Это хорошо работает с гораздо меньшим количеством кода. Создайте пользовательский атрибут при наведении курсора мыши перед установкой backgroundColor и используйте его при наведении курсора мыши. Отлично работает для чередования цветов строк.
row.Attributes["onmouseover"] = this.originalstyle=this.style.backgroundColor;this.style.cursor='hand';this.style.backgroundColor='#ffccff';";
row.Attributes["onmouseout"] = "this.style.textDecoration='none';this.style.backgroundColor=this.originalstyle;";