|
|
|
|
|
Dicas
|
|
Visual Basic (ActiveX/Controles/DLL)
|
|
|
Título da Dica: Acessando o DataSource durante a carga do DataGrid
|
|
|
|
Postada em 7/10/2003 por ^HEAVY-METAL^
Muitas vezes voce gostaria de acessar o "datarow" que está sendo carregado em determinada coluna. Um exemplo prático para este uso. - Vamos supor que voce está listando chamados pendentes , e quer "mudar" da cor da coluna se um chamado é urgente ou se esta muito atrasado, e mais ainda, o campo que tem esta informação não está no dataGrid e sim do DataTable ... - Vamos ao Código
language="VB" ' para acessar o datarow durante a carga vamos usar o seguinte código: ' Note que dr, eh o datarow, e posso acessar qualquer coluna da ' tabela original do banco de dados , e por exemplo alterar a ' cor da linha do DataGrid
Private Sub DataGrid1_ItemDataBound(ByVal s As Object, _ ByVal e As DataGridItemEventArgs) _ Handles DataGrid1.ItemDataBound
Dim i As Integer = e.Item.ItemIndex If i >= 0 And False Then Dim dr As DataRowView = CType(e.Item.DataItem, DataRowView) If dr("Prioridade") = 1 Then e.Item.Cells(0).BackColor = Color.FromArgb(255, 0, 0) e.Item.Cells(0).ForeColor = Color.FromArgb(255, 255, 255) ElseIf dr("Prioridade") = 2 Then e.Item.Cells(0).BackColor = Color.FromArgb(255, 255, 0) End If End If End Sub
' Se voce usa o Visual Studio.NET, pode criar um breakpoint no inicio da subrotina ' e vai notar que para cada Linha que é carregada no DataGrid , a subrotina ' é chamada, assim se o datagrid tem 10 linhas de dados, vai ocorrer 11 chamadas ' uma a mais por causa do Header da tabela, onde e.Item.ItemIndex = -1
T+,
|
|
|
|
|