2016-09-14 2 views
2

У меня есть gridview и RowDataBound Я использую этот код, чтобы изменить фон каждой второй строке, так что gridview можно лучше читать:изменить фон каждой второй строки в GridView, если строка видна

if (e.Row.RowIndex % 2 != 0) 
      { 
       e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#f2f2f2"); 
      } 

После что я использую dropdown, чтобы показать только соответствующие строки моего gridview и скрыть (visible = false) строки, которые я не хотел отображать. Роуминг не изменяется, поэтому другой фон не соответствует для каждой второй строки.

Теперь я ищу, чтобы получить рябины только видимых строк, чтобы изменить цвет каждой второй строки. Спасибо

ответ

1

Вы можете использовать технику CSS, упомянутые в Alternate table row color using CSS?:

.alternatingRows > tbody > tr:nth-child(even) 
{ 
    background-color: #f2f2f2; 
} 

Класс стиль применяется к самому GridView:

<asp:GridView ID="GridView1" runat="server" CssClass="alternatingRows" ... > 
+0

Просто отлично, спасибо –

4

Попробуйте AlternatingRowStyle свойство gridView.

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.alternatingrowstyle(v=vs.110).aspx

Документация на MSDN, чтобы вы начали.

+0

спасибо, но результат все тот же, я только скрыть строка ('visible = false') и не удалять их –

+0

Итак, попробуйте изменить свойство AlternatingRowStyle из файла кода. Если вы назначаете видимость строки в false сразу после этого, установите свойство alternatingrowstyle gridview на то, что вы хотите. Теперь я работал в C#, поэтому на C# вы можете сделать это следующим образом: 'dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.DarkGray;' –

+0

Больше информации здесь - https://msdn.microsoft.com/en-us/library/ system.windows.forms.datagridview.alternatingrowsdefaultcellstyle (v = vs.110) .aspx –