Haberbeck 0 Denunciar post Postado Junho 28, 2006 Olá,Tenho um DataSet com dois tables. Preciso comparar um campo comum entre eles para preencher um checkbox do meu DataGrid.Exemplo:Se DataSet.Tables(0).Rows(0)("id") = DataSet.Tables(1).Rows(0)("id") Então CheckBox.Checked = Trueisso seria um exemplo para uma linha, mas como para comparar todos?[]'s Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 você terá q fazer um for dentro de outro.. por exemplo:For i as integer = 0 to DataSet.Tables(0).Rows.Count - 1 For x as integer = 0 to DataSet.Tables(1).Rows.Count -1 If DataSet.Tables(0).Rows(i).Item("Id") = DataSet.Tables(1).Rows(x).Item("id") End If NextNext Compartilhar este post Link para o post Compartilhar em outros sites
Haberbeck 0 Denunciar post Postado Junho 28, 2006 Olá DiFalco, Fiz o For ...coloquei ele no itemdatabound mas ele está executando mtas vezes. Veja o resultado desse meu For: For i = 0 To ds.Tables(0).Rows.Count - 1 For j = 0 To ds.Tables(1).Rows.Count - 1 Response.Write("<br>" & ds.Tables(0).Rows(i)("ID") & " - " & ds.Tables(1).Rows(j)("ID")) Next Next Print na tela: 680 - 478 680 - 680 748 - 478 748 - 680 478 - 478 478 - 680 680 - 478 680 - 680 748 - 478 748 - 680 478 - 478 478 - 680 680 - 478 680 - 680 748 - 478 748 - 680 478 - 478 478 - 680 Ele está executando 3 vezes o meu for, parece que é a quantidade de registros da tabela1 Dados da tabela1: 680 748 478 Dados da tabela2: 478 680 Onde coloco esse for ? Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 o For tá correto.. onde você tá colocando ele ??? pq nao deveria rodar 3x.... Compartilhar este post Link para o post Compartilhar em outros sites
Haberbeck 0 Denunciar post Postado Junho 28, 2006 Opa DiFalco, Está no ItemDataBound do meu DataGrid. Coloquei um Response.Write para exemplificar, mas está executando 3 vezes mesmo =S segue o código do evento: Private Sub dgModulo_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgModulo.ItemDataBound Dim i, j As Integer If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then Dim chkS As CheckBox = e.Item.FindControl("chkS") For i = 0 To ds.Tables(0).Rows.Count - 1 For j = 0 To ds.Tables(1).Rows.Count - 1 Response.Write("<br>" & ds.Tables(0).Rows(i)("ID") & " - " & ds.Tables(1).Rows(j)("ID")) Next Next End If End Sub Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 me explica direito o q você quer fazer.. pra q você quer comparar essas tabelas ?? ela tá repetindo 3x pq tá no ItemDataBound do DataGrid q sempre é acessado quando o DataGrid recebe uma linha de dados nova e como aparentemente esse DataGrid vai ficar com 3 linhas ele vai fazer o For 3x....me explica direitinho o q você pretende para q eu possa te ajudar...[]'s Compartilhar este post Link para o post Compartilhar em outros sites
Haberbeck 0 Denunciar post Postado Junho 28, 2006 DiFalco, Tenho um DataGrid que listo em uma coluna os módulos cadastrados e em outra coluna de checkbox para a pessoa dar permissão/tirar. Quero pegar os registros do meu banco de dados e trazer para essa coluna de check box, preenchida de acordo com os módulos que a pessoa tiver permissão, entendeu? Na minha procedure retorno dois select's, o primeiro com os modulos cadastrados e o segundo com os modulos que a pessoa tem permissão, por isso queria comparar para deixar o CheckBox como 'checked' O resultado final seria algo como essa imagem q achei na net: []'s Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 Ahhhhhhh!!!Totalmente diferente do q eu tinha entendido de primeira..entao você tem q fazer assim... For i = 0 to DS.Tables(0).Rows.Count - 1 if e.Item.Cells(0).Text = DS.Tables(0).Rows(i)("id") then DirectCast(e.Item.Cells(1).FindControl("NomeDaCheckBox"), CheckBox).Checked = True exit For end ifNextvê se é isso..[]'s Compartilhar este post Link para o post Compartilhar em outros sites
Haberbeck 0 Denunciar post Postado Junho 28, 2006 DiFalco,esse e.Item.Cells(0).Text está sempre vindo "" vazio, é a primeira célular do meu datagrid né?Troquei pelo Cells(1) e também está vindo vazio. Oque posso fazer?Já o valor do DS.Tables(0).Rows(i)("id") está vindo certo com o código do meu módulo.Sendo que... se eu comento esse for, meu grid é preenchido normalmente![]'s Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 posta o código HTML do DataGrid.. Compartilhar este post Link para o post Compartilhar em outros sites
Haberbeck 0 Denunciar post Postado Junho 28, 2006 DiFalco,Seu for está certo só o Tables(0) que estava errado. Troquei por Tables(1) que é o meu segundo select e FUNFOUUUU!!!Quero muito agradecer o seu emprenho!![]'s Compartilhar este post Link para o post Compartilhar em outros sites
DiFalco 0 Denunciar post Postado Junho 28, 2006 fico feliz de ter conseguido te ajudar..[]'s e qq coisa estamos aí Compartilhar este post Link para o post Compartilhar em outros sites