У меня есть элемент управления GridView, который я динамически привязываю к DataTable, который заполняется запросом, построенным на основе набора выбранных параметров.
То, что я пытаюсь сделать, - это просто обработать событие RowDataBound, чтобы отформатировать определенные строки на основе значения поля базы данных.Код в этом обработчике событий работает нормально.Моя проблема заключается в том, что при вызове этого события GridView отображает только первую запись в DataTable, почти как если бы Gridview останавливался после привязки к DataTable после привязки первой строки.
Я попытался добавить обработчик динамически, но получаю те же результаты.
Есть идеи, почему простая обработка этого события заставляет Gridview делать это?
Я точно знаю, что достаточно возвращаемых данных (DataTable заполняется всеми записями, а GridView показывает все записи в порядке, не касаясь события RowDataBound).
Я добавляю обработчик сразу после генерации запроса, заполняю DataTable и привязываю GridView:
oDA.Fill(oDTbl)
figs_gv.DataSource = oDTbl
figs_gv.DataBind()
AddHandler figs_gv.RowDataBound, AddressOf gvRowDataBound
Сам обработчик:
Protected Sub gvRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If (e.Row.DataItem("Have") = "Yes") Then
For i As Integer = 1 To e.Row.Cells.Count
e.Row.Cells(i).BackColor = Drawing.ColorTranslator.FromHtml("#d3f1c7")
Next
End If
End If
End Sub
Iтакже определили, что при обработке RowDataBound событие GATView DATABOUND никогда не запускается;Кажется, он прекращает связывание сразу после связывания первого ряда.