Usuário com melhor resposta
Pegar ID no GridView e popular um Datatable

Pergunta
-
Olá Pessoal!
O meu problema é: Tenho um Gridview com checkbox, as linhas que estiverem com o checkbox selecionado eu devo pegar o ID e guardar em um DataTable.
Uma vez com os IDs no DataTable eu vou enviar um e-mail para cada linha. (cada registro da linha possui um endereço de e-mail)
Bom, nesse momento eu já estou conseguindo pegar o ID do check box Selecionado, mas eu estou preenchendo uma string e não um DataTable, acredito que dessa maneira eu não conseguirei contar para parar de enviar os e-mails quando chegar ao final.
Segue o código que estou usando:
Gridview (aspx)
<asp:GridView Width="100%" BorderStyle="None" BorderWidth="0" id="gvResultado" runat="server" AllowSorting="true" DataKeyNames="IDUsuario" AutoGenerateColumns="false" OnRowCommand="gvResultado_RowCommand" SelectedRowStyle-ForeColor="#FF0066" PageSize="50" CssClass="grid" HeaderStyle-CssClass="header" AlternatingRowStyle-CssClass="alternativa" RowStyle-CssClass="normal"> <RowStyle Height="30px"/> <Columns> <asp:TemplateField HeaderText="Enviar para" ItemStyle-HorizontalAlign="Center" > <ItemTemplate> <input type="checkbox" runat="server" id="checkSelecionado" value='<%# Eval("IDUsuario")%>' /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="IDUsuario" HeaderText="ID do usuário" Visible="false"/> <asp:BoundField DataField="Nome" HeaderText="Nome"/> <asp:BoundField DataField="DDDTelefone" HeaderText="Código DDD" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField DataField="Telefone" HeaderText="Tel preferencial" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField DataField="DDDCelular" HeaderText="Código DDD" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField DataField="Celular" HeaderText="Tel secundário" ItemStyle-HorizontalAlign="Center" /> <asp:BoundField DataField="Radio" HeaderText="Rádio ID" ItemStyle-HorizontalAlign="Center" /> <asp:ButtonField HeaderText="Mais informações" CommandName="Informacoes" Text="Detalhes" ItemStyle-HorizontalAlign="Center" /> </Columns> </asp:GridView>
Agora o código aspx.vb
Dim strchecados As String = String.Empty For Each key As String In Request.Form.Keys If key.EndsWith("checkSelecionado") Then If CType(Page.FindControl(key), System.Web.UI.HtmlControls.HtmlInputCheckBox).Checked Then strchecados = (strchecados _ + (Request.Form(key) + ", ")) End If End If Next lblteste.Text = strchecados
Pessoal, eu gostaria de ao invés de popular uma string eu gostaria de popular um DataTable. Algém sabe como fazer?
Obrigado e um abraço para todos!
t+
Se foi útil, favor marcar para que outros também possam utilizar.
Respostas
-
Olá pessoal,
Achei essa solução que não precisa de DataTable, ela carrega os selecionados e executa um comando enquanto tiver seleconados.
Vou testar hoje a noite e respondo aqui, abração!
Sub Excluir() Dim i As Integer For i = 0 To gvProducts.Rows.Count - 1 Dim dgItem As GridViewRow = gvProducts.Rows(i) Dim lblid As Label = CType(dgItem.FindControl("lblid"), Label) Dim cb As CheckBox = CType(dgItem.FindControl("chk1"), CheckBox) If cb.Checked Then DeletaRegistro(CInt(lblid.Text)) End If Next i exibeGrid() End Sub
Se foi útil, favor marcar para que outros também possam utilizar.
- Marcado como Resposta Harley Araujo quarta-feira, 15 de fevereiro de 2012 10:58
Todas as Respostas
-
veja um ex como criar e popular
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
-
Olá pessoal,
Achei essa solução que não precisa de DataTable, ela carrega os selecionados e executa um comando enquanto tiver seleconados.
Vou testar hoje a noite e respondo aqui, abração!
Sub Excluir() Dim i As Integer For i = 0 To gvProducts.Rows.Count - 1 Dim dgItem As GridViewRow = gvProducts.Rows(i) Dim lblid As Label = CType(dgItem.FindControl("lblid"), Label) Dim cb As CheckBox = CType(dgItem.FindControl("chk1"), CheckBox) If cb.Checked Then DeletaRegistro(CInt(lblid.Text)) End If Next i exibeGrid() End Sub
Se foi útil, favor marcar para que outros também possam utilizar.
- Marcado como Resposta Harley Araujo quarta-feira, 15 de fevereiro de 2012 10:58