
| Desenvolvimento | | :: :: :: :: :: ::
|
| CERTIFICAÇÃO | |
|
|
| LINKS |
 |
|
| |  | | Home |  |
 | | Percorrendo os Itens do DataGrid |  | Aprenda como percorrer itens de um DataGrid em C# ou VB.net Há alguns cenários onde precisamos ter no controle DataGrid e, em cada um dos itens (linhas) do mesmo, ter um CheckBox, que tem a finalidade de "marcar" um determinado registro, onde futuramente precisaremos recuperar os registros que estão marcados para efetuarmos algum processo com eles.
Para compor este cenário, teremos que ter uma coluna do tipo TemplateColumn no DataGrid e, dentro dela, devemos colocar um controle CheckBox que irá especificar se o registro está ou não marcado. Depois do DataGrid devidamente carregado, para cada item (linha), com excessão do Header e Footer, será criado automaticamente um controle CheckBox para que o usuário possa marcar os registros que desejar.
Agora, no evento Click de um botão qualquer, iremos percorrer os itens do DataGrid e, dentro deste laço For Each, será necessário fazer algumas verificações antes de acessar diretamente o CheckBox que está contido dentro do item. A primeira verificação deve ser feita analisando se o item é do tipo Item ou AlternatingItem, quais são as seções (linhas) que podem conter os CheckBoxes. Em seguida, através do método FindControl, recuperamos a instância do controle CheckBox e verificamos se ele está ou não marcado, através da propriedade Checked. Se estiver, recuperamos o valor da terceira célula (índice 2) através da propriedade Text da mesma e, conseqüentemente, adicionamos em um controle Label.
O exemplo abaixo mostra como recuperar no evento Click de um botão, os itens marcados de um DataGrid:

C#
private void Button1_Click(object sender, System.EventArgs e) { foreach(DataGridItem item in this.DataGrid1.Items) { if(item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) { CheckBox chk = (CheckBox)item.FindControl("CheckBox1"); if(chk.Checked) this.Label1.Text += item.Cells[2].Text + "<br>"; } } }
Vb.Net
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each item As DataGridItem In Me.DataGrid1.Items If item.ItemType = ListItemType.Item OrElse item.ItemType = ListItemType.AlternatingItem Then
Dim chk As CheckBox = DirectCast(item.FindControl("CheckBox1"), CheckBox) If chk.Checked Then Me.Label1.Text &= item.Cells(2).Text & "<br>"; End If End If Next End Sub
[02/04/2007 09:53 - Fabrizio Gianfratti]
| | 
| WebMail | |
| |
| TRADUTOR ONLINE |
 | |
| Top Páginas | | :: :: :: :: ::
|
|