Múltiplas seleções com checkbox no datagrid
Solicito ajuda no seguinte:
tenho um datagrid com várias contas a receber e preciso:
1) colocar um checkbox header pra marcar e desmarcar todos os itens do datagrid;
2) colocar um checkbox em cada linha para o usuario marcar os itens que desejar;
3) colocar um button pra varrer o datagrid e excluir ou baixar todos os itens selecionados de uma vez.
encontrei vários exemplos na internet, mas todos C# ou VB, preciso de um exemplo em Delphi
2005.
Obrigado,
Melk.
Melkcimar Costa
Curtidas 0
Respostas
Devmedia
28/12/2009
Senhor,
cada dúvida deve ser postada em um chamado diferente.
por favor, escolha qual dúvida deseja tratar nesse chamado para que o consultor possa dar prosseguimento ao mesmo.
cada dúvida deve ser postada em um chamado diferente.
por favor, escolha qual dúvida deseja tratar nesse chamado para que o consultor possa dar prosseguimento ao mesmo.
GOSTEI 0
Melkcimar Costa
28/12/2009
Senhores, a dúvida é uma só, eu coloquei em passos 1,2... pra facilitar o entendimento, eu preciso de uma ajuda, como usar checkbox num datagrid com multiplas seleções e retornar estes valores selecionados.
Obrigado,
Melk.
GOSTEI 0
Rodrigo Mourão
28/12/2009
Olá,
1) Primeiro você terá que cirar uma template columm no seu data grid que já existe. Para isso vc terá que localizar o data grid no aspx. Abaixo tem um exemplo do que terá que ser adicionado. As Linhas em vermelho são as que vão adicionar o CheckBox. Lembre-se que as linhas tem que ser adicionada no código aspx que já existe no seu projeto.
<asp:datagrid id="myGrid" runat="server"
width="92%" cellpadding=5 font-size="8pt" autogeneratecolumns=false>
<columns>
<asp:templatecolumn>
<itemtemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn headertext="Title"
datafield="title" />
<asp:boundcolumn headertext="Notes"
datafield="notes" />
</columns>
</asp:datagrid>
2) Para que possa identificar qual check box esta selecionado basta fazer no clique de um botão por exemplo:
var
i: Integer;
Chk: CheckBox;
begin
for i := 0 to DataGrid1.Items.Count-1 do
begin
if (DataGrid1.Items[I].ItemType = ListItemType.Item) or
(DataGrid1.Items[I].ItemType = ListItemType.AlternatingItem) then
begin
Chk := CheckBox(DataGrid1.Items[I].FindControl('CheckBox1');
if Chk.Checked then
Response.Write('Checado !!!!');
end;
end;
end;
Substitua a linha vermelha pelo código que você deseja que seja feito caso o checkbox esteja marcado !!!
Att,
1) Primeiro você terá que cirar uma template columm no seu data grid que já existe. Para isso vc terá que localizar o data grid no aspx. Abaixo tem um exemplo do que terá que ser adicionado. As Linhas em vermelho são as que vão adicionar o CheckBox. Lembre-se que as linhas tem que ser adicionada no código aspx que já existe no seu projeto.
<asp:datagrid id="myGrid" runat="server"
width="92%" cellpadding=5 font-size="8pt" autogeneratecolumns=false>
<columns>
<asp:templatecolumn>
<itemtemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn headertext="Title"
datafield="title" />
<asp:boundcolumn headertext="Notes"
datafield="notes" />
</columns>
</asp:datagrid>
2) Para que possa identificar qual check box esta selecionado basta fazer no clique de um botão por exemplo:
var
i: Integer;
Chk: CheckBox;
begin
for i := 0 to DataGrid1.Items.Count-1 do
begin
if (DataGrid1.Items[I].ItemType = ListItemType.Item) or
(DataGrid1.Items[I].ItemType = ListItemType.AlternatingItem) then
begin
Chk := CheckBox(DataGrid1.Items[I].FindControl('CheckBox1');
if Chk.Checked then
Response.Write('Checado !!!!');
end;
end;
end;
Substitua a linha vermelha pelo código que você deseja que seja feito caso o checkbox esteja marcado !!!
Att,
GOSTEI 0
Rodrigo Mourão
28/12/2009
Olá Amigo,
Fez a alteração ???
Estamos aguardando para encerrr o chamado !!!
Att,
Fez a alteração ???
Estamos aguardando para encerrr o chamado !!!
Att,
GOSTEI 0
Rodrigo Mourão
28/12/2009
Olá,
Estaremos colocando o chamado como concluído.
Caso ainda tenha alguma dúvida você poderá reabrí-lo que voltaremos a atendê-lo.
Att,
Estaremos colocando o chamado como concluído.
Caso ainda tenha alguma dúvida você poderá reabrí-lo que voltaremos a atendê-lo.
Att,
GOSTEI 0
Melkcimar Costa
28/12/2009
desculpe a demora, mas viajei no final de ano e só agora pude fazer o teste, funcionou sim, selecionei 2 checkbox, mas ele só mostra o último checkbox marcado, gostaria de varrer todos os itens marcados e deletar tudo de uma vez dentro do begin end que coloquei o showmessage.
Obrigado.
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
I: Integer;
Chk: CheckBox;
begin
for I := 0 to dgContasAReceber.Items.Count-1 do
begin
if (dgContasAReceber.Items[I].ItemType = ListItemType.Item) or
(dgContasAReceber.Items[I].ItemType = ListItemType.AlternatingItem) then
begin
MessageBox1.ShowMessage(dgContasAReceber.Items.Count);
Chk := CheckBox(dgContasAReceber.Items[I].FindControl('CkItem'));
if Chk.Checked = True then
begin
MessageBox1.ShowMessage(dgContasAReceber.Items.Item[I].Cells[3].Text +
'/' +
dgContasAReceber.Items.Item[I].Cells[4].Text );
end;
end;
end;
end;
GOSTEI 0
Melkcimar Costa
28/12/2009
deu certo! obrigado.
GOSTEI 0