Dúvidas sobre manipulação de dados no GRIDVIEW e conexão com o Firebird
Bom Dia Professor!
Estou com algumas dúvidas sobre manipulação de dados no GRIDVIEW e conexão com o Firebird, descritas abaixo:
1 - Ao criar um DATAGRID, alterando o nome da coluna "0"(zero) para DOWNLOAD, e a segunda coluna tenho a lista dos arquivos do conteúdo de um site, posso fazer o download, clicando na coluna "0"(zero). Dúvida : Acontece que possuo o DELPHI 2007 e desejaria saber Como fazer o mesmo que fiz no DATAGRID(Código abaixo) no DBGRIDVIEW, visto que ocorre erro na linha marcada de vermelho abaixo ? procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end; 2 - Estou conseguindo conectar NORMALMENTE no FIREBIRD2.1 e no INTERBASE2007, escolhendo SQLDATASOURCE e DBEXPRESS. Somente não funcionam os parâmetros do GRIDVIEW, em NENHUM DOS 2. Dúvida : Através da linha marcada AZUL abaixo, consigo com um FBDataReader recuperar o valor de um registro filtrado no select em vermelho . Como fazer o mesmo no SQLDataSource, único objeto que consegui conectar perfeitamente no FIREBIRD 2.1 e INTERBASE 2007 ?
procedure TDefault.BtIncluir_Click(sender: System.Object; e: System.EventArgs);
Var
FbDataReader_Select : FBDataReader;
Qtde_Reg_JahExiste : LongInt;
begin
FbConnection1.Open; FbCommand1.CommandText :=
'select count(*) From COUNTRY '+
'where Upper(COUNTRY)='+ QuotedStr( Uppercase(TxtCOUNTRY_Incluir.Text) ) ; // As 2 linhas abaixo "ABREM" a query;
FbDataReader_Select:= FbCommand1.ExecuteReader();
FbDataReader_Select.Read; // Dv := SqlDataSource1.Select(DataSourceSelectArguments.Empty); // Armazena a qtde de registros que já existe,
// com a MESMA chave primária que tenta INCLUIR
Qtde_Reg_JahExiste := StrToInt( FbDataReader_Select.GetValue(0).ToString );
FbConnection1.Close; // Se o REGISTRO já existir, EMITE MENSAGEM :
if Qtde_Reg_JahExiste=1 then
Begin
Lb_Mensagem.Text := 'Registro já EXISTENTE !';
Lb_Mensagem.Visible := True;
TxtCOUNTRY_Incluir.Focus;
Exit;
End; SqlDatasource1.InsertCommand :=
'Insert into COUNTRY(COUNTRY,CURRENCY) '+
'VALUES ('+QuotedStr(TxtCOUNTRY_Incluir.Text) +
','+QuotedStr(TxtCURRENCY_Incluir.Text)+')'; SqlDatasource1.Insert; FiltrarPor( TxtCOUNTRY_Incluir.Text, SqlDatasource1 ) ;
GridView1.SelectedIndex := -1;
Lb_Mensagem.Text := '';
Lb_Mensagem.Visible := False; TxtCOUNTRY_Incluir.Focus
end;
Certo de Vossa Atenção, desde já agradeço!
Ferreira & Souza Informática # Sede => Guaxupé - MG .
CNPJ: 05.258.001/0001-54
Muzambinho :
carlosmuzambinho@yahoo.com.br
Analista de Sistemas / Assistência Técnica
CRA : AS.26.029
Cel: 35- 8831-9915
Estou com algumas dúvidas sobre manipulação de dados no GRIDVIEW e conexão com o Firebird, descritas abaixo:
1 - Ao criar um DATAGRID, alterando o nome da coluna "0"(zero) para DOWNLOAD, e a segunda coluna tenho a lista dos arquivos do conteúdo de um site, posso fazer o download, clicando na coluna "0"(zero). Dúvida : Acontece que possuo o DELPHI 2007 e desejaria saber Como fazer o mesmo que fiz no DATAGRID(Código abaixo) no DBGRIDVIEW, visto que ocorre erro na linha marcada de vermelho abaixo ? procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end; 2 - Estou conseguindo conectar NORMALMENTE no FIREBIRD2.1 e no INTERBASE2007, escolhendo SQLDATASOURCE e DBEXPRESS. Somente não funcionam os parâmetros do GRIDVIEW, em NENHUM DOS 2. Dúvida : Através da linha marcada AZUL abaixo, consigo com um FBDataReader recuperar o valor de um registro filtrado no select em vermelho . Como fazer o mesmo no SQLDataSource, único objeto que consegui conectar perfeitamente no FIREBIRD 2.1 e INTERBASE 2007 ?
procedure TDefault.BtIncluir_Click(sender: System.Object; e: System.EventArgs);
Var
FbDataReader_Select : FBDataReader;
Qtde_Reg_JahExiste : LongInt;
begin
FbConnection1.Open; FbCommand1.CommandText :=
'select count(*) From COUNTRY '+
'where Upper(COUNTRY)='+ QuotedStr( Uppercase(TxtCOUNTRY_Incluir.Text) ) ; // As 2 linhas abaixo "ABREM" a query;
FbDataReader_Select:= FbCommand1.ExecuteReader();
FbDataReader_Select.Read; // Dv := SqlDataSource1.Select(DataSourceSelectArguments.Empty); // Armazena a qtde de registros que já existe,
// com a MESMA chave primária que tenta INCLUIR
Qtde_Reg_JahExiste := StrToInt( FbDataReader_Select.GetValue(0).ToString );
FbConnection1.Close; // Se o REGISTRO já existir, EMITE MENSAGEM :
if Qtde_Reg_JahExiste=1 then
Begin
Lb_Mensagem.Text := 'Registro já EXISTENTE !';
Lb_Mensagem.Visible := True;
TxtCOUNTRY_Incluir.Focus;
Exit;
End; SqlDatasource1.InsertCommand :=
'Insert into COUNTRY(COUNTRY,CURRENCY) '+
'VALUES ('+QuotedStr(TxtCOUNTRY_Incluir.Text) +
','+QuotedStr(TxtCURRENCY_Incluir.Text)+')'; SqlDatasource1.Insert; FiltrarPor( TxtCOUNTRY_Incluir.Text, SqlDatasource1 ) ;
GridView1.SelectedIndex := -1;
Lb_Mensagem.Text := '';
Lb_Mensagem.Visible := False; TxtCOUNTRY_Incluir.Focus
end;
Certo de Vossa Atenção, desde já agradeço!
Ferreira & Souza Informática # Sede => Guaxupé - MG .
CNPJ: 05.258.001/0001-54
Muzambinho :
carlosmuzambinho@yahoo.com.br
Analista de Sistemas / Assistência Técnica
CRA : AS.26.029
Cel: 35- 8831-9915
Rogério Souza
Curtidas 0
Respostas
Devmedia
31/03/2009
Rogério,
por se tratar de dúvidas distintas, peço que abra um chamado para cada uma. Escolha a dúvida que deseja tratar nesse chamado e abra um novo chamado para a outra, ok!
por se tratar de dúvidas distintas, peço que abra um chamado para cada uma. Escolha a dúvida que deseja tratar nesse chamado e abra um novo chamado para a outra, ok!
GOSTEI 0
Rogério Souza
31/03/2009
Bom Dia Professor!
Estou com uma dúvida sobre manipulação de dados no GRIDVIEW, descrita abaixo:
1 - Ao criar um DATAGRID, alterando o nome da coluna "0"(zero) para DOWNLOAD, e a segunda coluna tenho a lista dos arquivos do conteúdo de um site, posso fazer o download, clicando na coluna "0"(zero). Dúvida : Acontece que possuo o DELPHI 2007 e desejaria saber Como fazer o mesmo que fiz no DATAGRID(Código abaixo) no DBGRIDVIEW, visto que ocorre erro na linha marcada de vermelho abaixo ? procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end;
Estou com uma dúvida sobre manipulação de dados no GRIDVIEW, descrita abaixo:
1 - Ao criar um DATAGRID, alterando o nome da coluna "0"(zero) para DOWNLOAD, e a segunda coluna tenho a lista dos arquivos do conteúdo de um site, posso fazer o download, clicando na coluna "0"(zero). Dúvida : Acontece que possuo o DELPHI 2007 e desejaria saber Como fazer o mesmo que fiz no DATAGRID(Código abaixo) no DBGRIDVIEW, visto que ocorre erro na linha marcada de vermelho abaixo ? procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end;
GOSTEI 0
Rodrigo Mourão
31/03/2009
Olá Rogério !!
Bem trocar o DataGrid pelo Gridview foi, na minha opinião, a melhor coisa que você poderia ter feito. Para mim é o melhor componente .net.
Bem mas acredito que o evento escolhido por você não foi o mellhor. Experimente o evento RowDataBound e para pegar o conetudo como você deseja faça algo como:
Var
fn : String ;
begin
if e.Row.RowType = DataColunmRowType.DataItem then
begin
// Path + Arquivo da Coluna
fn:= e.Cells[x]. ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
Isso deve resolver seu problema. Abs !!! Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
fn : String ;
begin
if e.Row.RowType = DataColunmRowType.DataItem then
begin
// Path + Arquivo da Coluna
fn:= e.Cells[x]. ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
Isso deve resolver seu problema. Abs !!! Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rogério Souza
31/03/2009
Fiz conforme pediu,
no evento ROWDATABOUND
do GRIDVIEW,
inseri o código ABAIXO, e deu
erro LOGO no COMEÇO : DataColumnRowType
ONDE MARQUEI EM NEGRITO LOGO ABAIXO.
Que faço agora ?
procedure TDefault.GridView_ListaArquivos_RowDataBound(sender: System.Object;
e: System.Web.UI.WebControls.GridViewRowEventArgs);
begin
if e.Row.RowType = DataColumnRowType.DataItem then
begin
// Path + Arquivo da Coluna
fn:= e.Cells[x]. ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
no evento ROWDATABOUND
do GRIDVIEW,
inseri o código ABAIXO, e deu
erro LOGO no COMEÇO : DataColumnRowType
ONDE MARQUEI EM NEGRITO LOGO ABAIXO.
Que faço agora ?
procedure TDefault.GridView_ListaArquivos_RowDataBound(sender: System.Object;
e: System.Web.UI.WebControls.GridViewRowEventArgs);
begin
if e.Row.RowType = DataColumnRowType.DataItem then
begin
// Path + Arquivo da Coluna
fn:= e.Cells[x]. ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
GOSTEI 0
Rogério Souza
31/03/2009
Olá,
obrigado pela ajuda ... porém ainda não deu certo ...
Vou tentar ser mais CLARO :
No projeto contém um DATAGRID que mostra um BUTTON com DOWNLOAD
na PRIMEIRA COLUNA e na segunda o CAMINHO+ARQUIVO para DOWNLOAD.
Ao clicar em DOWNLOAD - PRIMEIRA COLUNA,
faz o DOWNLOAD do CAMINHO+ARQUIVO da SEGUNDA COLUNA
o Download, pelo evento do DATAGRID, conforme ABAIXO , funciona :
procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end;
no GRIDVIEW, o ÚNICO local que deu erro, no evento
ROWCOMMAND, foi onde está em VERMELHO ABAIXO.
Tentei seguir o que falou, não compila ...
Comprende, a PROPRIEDADE Item de "E",
parâmetro passado pelo EVENTO ROWCOMMAND, não existe
para o OBJETO do tipo GRIDVIEW ???
Como recupero, neste caso, a COLUNA desejada que o usuário
CLICOU no GRIDVIEW ?
( no DATAGRID foi FÁCIL, porém dizem que está obsoleto )
procedure TDefault.GridView_ListaArquivos_RowCommand(sender: System.Object; e: System.Web.UI.WebControls.GridViewCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
// LbMensa.Visible := True;
// LbMensa.Text := Path.GetFileName(fn);
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
// Response.WriteFile(fn);
Response.&End;
end;
end;
obrigado pela ajuda ... porém ainda não deu certo ...
Vou tentar ser mais CLARO :
No projeto contém um DATAGRID que mostra um BUTTON com DOWNLOAD
na PRIMEIRA COLUNA e na segunda o CAMINHO+ARQUIVO para DOWNLOAD.
Ao clicar em DOWNLOAD - PRIMEIRA COLUNA,
faz o DOWNLOAD do CAMINHO+ARQUIVO da SEGUNDA COLUNA
o Download, pelo evento do DATAGRID, conforme ABAIXO , funciona :
procedure TDefault.Grid_Lista_Arquivos_ItemCommand(source: System.Object; e: System.Web.UI.WebControls.DataGridCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
Response.WriteFile(fn);
Response.&End;
end;
end;
no GRIDVIEW, o ÚNICO local que deu erro, no evento
ROWCOMMAND, foi onde está em VERMELHO ABAIXO.
Tentei seguir o que falou, não compila ...
Comprende, a PROPRIEDADE Item de "E",
parâmetro passado pelo EVENTO ROWCOMMAND, não existe
para o OBJETO do tipo GRIDVIEW ???
Como recupero, neste caso, a COLUNA desejada que o usuário
CLICOU no GRIDVIEW ?
( no DATAGRID foi FÁCIL, porém dizem que está obsoleto )
procedure TDefault.GridView_ListaArquivos_RowCommand(sender: System.Object; e: System.Web.UI.WebControls.GridViewCommandEventArgs);
Var
fn : String ;
begin
if (e.CommandName='Download') then
begin
// Path + Arquivo da Coluna
fn:= E.Item.Cells[1].Text ;
// LbMensa.Visible := True;
// LbMensa.Text := Path.GetFileName(fn);
//
// Tipo do CONTEÚDO que irá enviar para o BROWSER
Response.ContentType := 'application./x-download';
//
// Cabeçalho do RESPONSE que irá enviar o nome do arquivo que
// será enviado ao browser
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn)); //Path.GetFileName(fn) => Extrai o nome do arquivo
//
// Caso queira já ABRIR o arquivo no BROWSER, após o DOWNLOAD
// Response.WriteFile(fn);
Response.&End;
end;
end;
GOSTEI 0
Rodrigo Mourão
31/03/2009
Olá Rogerio !!
Eu entendi perfeitamente o que quer, faço isso quase que em todos os sistemas que desenvolvo em Asp.net por este motivo lhe indiquei mudar de Evento.
O erro ocorre em E.Item.Cells[1].Text por que o argumento no evento RowCommand não possui essas propriedades, por isso que tem que ser feito no RowDataBound. Mas enfim você diz que ocorre erro na linha:
if e.Row.RowType = DataColumnRowType.DataItem then
Poderia me informar qual q mensagem de erro ?? Se prefirir, para que não venhamos ficar aqui trocando mensagem em vão, pode me enviar o projeto para que eu possa compilar, depurar e localizar o real motivo do erro.
Fico no aguardo !!!
Obs.: Você pode estar utilizando o disco virtual para enviar o projeto
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Eu entendi perfeitamente o que quer, faço isso quase que em todos os sistemas que desenvolvo em Asp.net por este motivo lhe indiquei mudar de Evento.
O erro ocorre em E.Item.Cells[1].Text por que o argumento no evento RowCommand não possui essas propriedades, por isso que tem que ser feito no RowDataBound. Mas enfim você diz que ocorre erro na linha:
if e.Row.RowType = DataColumnRowType.DataItem then
Poderia me informar qual q mensagem de erro ?? Se prefirir, para que não venhamos ficar aqui trocando mensagem em vão, pode me enviar o projeto para que eu possa compilar, depurar e localizar o real motivo do erro.
Fico no aguardo !!!
Obs.: Você pode estar utilizando o disco virtual para enviar o projeto
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rogério Souza
31/03/2009
AS Fontes foram enviadas para o Disco Virtual com o nome Upload_Download_teste.zip. Explicações detalhadas no código.
No aguardo pela resposta...
Grato
No aguardo pela resposta...
Grato
GOSTEI 0
Rodrigo Mourão
31/03/2009
Olá Rogerio, preciso do Link completo.
Não tenho acesso ao disco virtual so os clientes.
No aguardo !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Não tenho acesso ao disco virtual so os clientes.
No aguardo !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rogério Souza
31/03/2009
Como pego o link ?
GOSTEI 0
Rogério Souza
31/03/2009
BOM DIA ...
Veja se é o link abaixo:
https://www.devmedia.com.br/imagens/discovirtual/176193/Upload_Download_Teste.zip
Se não for, me explica como pegar para te enviar, ok ?
GRATO ...
Veja se é o link abaixo:
https://www.devmedia.com.br/imagens/discovirtual/176193/Upload_Download_Teste.zip
Se não for, me explica como pegar para te enviar, ok ?
GRATO ...
GOSTEI 0
Rodrigo Mourão
31/03/2009
Olá Amigo, consegui baixar !
Peço por gentileza aguardar pois irei fazer os testes e lhe respondo o mais rápido possível !!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Peço por gentileza aguardar pois irei fazer os testes e lhe respondo o mais rápido possível !!
Abs !!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rodrigo Mourão
31/03/2009
Olá Amigo !!!
Bem analisando seu código aqui agora vejo o porque o codigo não funcionou e da maneira que está Tb não vai funcionar. Vou lhe explicar por que.
Voce esta fazendo um bind direto de um array e até ai tudo bem porem o metodo que lhe passei funcionaria se as colunas estivessem ja no GridView o que nao é o caso. Se fosse pegariamos o valor desta maneira:
if e.Row.RowType = DataControlRowType.DataRow then
begin
fn := DataBinder.Eval(e.Row.DataItem, 'Path').ToString();
Response.ContentType := 'application./x-download';
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn));
Response.WriteFile(fn);
Response.&End;
end;
No seu caso isso nao vai funcionar. PAra usar o grid view teria que montá-lo dinamicamente o link. Assim seria possivel.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Bem analisando seu código aqui agora vejo o porque o codigo não funcionou e da maneira que está Tb não vai funcionar. Vou lhe explicar por que.
Voce esta fazendo um bind direto de um array e até ai tudo bem porem o metodo que lhe passei funcionaria se as colunas estivessem ja no GridView o que nao é o caso. Se fosse pegariamos o valor desta maneira:
if e.Row.RowType = DataControlRowType.DataRow then
begin
fn := DataBinder.Eval(e.Row.DataItem, 'Path').ToString();
Response.ContentType := 'application./x-download';
Response.AddHeader('Content-Disposition','filename='+
Path.GetFileName(fn));
Response.WriteFile(fn);
Response.&End;
end;
No seu caso isso nao vai funcionar. PAra usar o grid view teria que montá-lo dinamicamente o link. Assim seria possivel.
Abs !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rogério Souza
31/03/2009
Vamos ser mais diretos, ok?
Você consegue fazer o que fiz,
no DATAGRID, através do GRIDVIEW,
corrigindo o CÓDIGO que COMENTEI,
seja NESTE ou NOUTRO evento ?
Caso não consiga, favor passar para outro programador da DEVMEDIA.
ok ?
Extremamente grato,
CARLOS A.F.Silva
Analista de Sistemas
Professor Licenciado do INSTITUTO FEDERAL DE MUZAMBINHO
Você consegue fazer o que fiz,
no DATAGRID, através do GRIDVIEW,
corrigindo o CÓDIGO que COMENTEI,
seja NESTE ou NOUTRO evento ?
Caso não consiga, favor passar para outro programador da DEVMEDIA.
ok ?
Extremamente grato,
CARLOS A.F.Silva
Analista de Sistemas
Professor Licenciado do INSTITUTO FEDERAL DE MUZAMBINHO
GOSTEI 0
Rodrigo Mourão
31/03/2009
Não se trata de conseguir fazer ou não !! Se trata de fazer como você quer que seja feito !!!
DA maneira que você quer não há possibilidade seja em um ou outro eveto pois o argumento não fornece os dados necessários.
Como falei so montando os dados no Grid View !!! Estarei enviando o post para ser passado a outro programador !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
DA maneira que você quer não há possibilidade seja em um ou outro eveto pois o argumento não fornece os dados necessários.
Como falei so montando os dados no Grid View !!! Estarei enviando o post para ser passado a outro programador !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
GOSTEI 0
Rogério Souza
31/03/2009
Ok,
Apenas desejo fazer algo SIMPLES no GRIDVIEW,
que consigo em um COMPONENTE MAIS ANTIGO como o DATAGRID.
Caso saiba como fazer, favor corrigir o código.
(o mesmo funciona PERFEITAMENTE no DATAGRID)
Creio que não terei que
TROCAR TODO O CÓDIGO, pois os dados estão abertos/CARREGADOS no
GRIDVIEW e no DATAGRID, de maneira IDÊNTICA.
Logicamente TEM COMO CONSULTAR cada CÉLULA do GRIDVIEW,
como consultei do DATAGRID.
É somente ISTO que desejo fazer ao CLICAR na LINHA DESEJADA. MAIS NADA.
Agradeço o ESFORÇO,
aguardo outro programador.
CARLOS A.F.Silva.
Analista de Sistemas - Desenvolvedor Delphi Win32
Professor do Instituto Federal de Muzambinho.
Sócio - Ferreira e Souza Informática.
Apenas desejo fazer algo SIMPLES no GRIDVIEW,
que consigo em um COMPONENTE MAIS ANTIGO como o DATAGRID.
Caso saiba como fazer, favor corrigir o código.
(o mesmo funciona PERFEITAMENTE no DATAGRID)
Creio que não terei que
TROCAR TODO O CÓDIGO, pois os dados estão abertos/CARREGADOS no
GRIDVIEW e no DATAGRID, de maneira IDÊNTICA.
Logicamente TEM COMO CONSULTAR cada CÉLULA do GRIDVIEW,
como consultei do DATAGRID.
É somente ISTO que desejo fazer ao CLICAR na LINHA DESEJADA. MAIS NADA.
Agradeço o ESFORÇO,
aguardo outro programador.
CARLOS A.F.Silva.
Analista de Sistemas - Desenvolvedor Delphi Win32
Professor do Instituto Federal de Muzambinho.
Sócio - Ferreira e Souza Informática.
GOSTEI 0
Rogério Souza
31/03/2009
Enviei outro arquivo ZIPADO,
veja se este funciona o DATAGRID.
https://www.devmedia.com.br/imagens/discovirtual/176193/Upload_Download_Teste-2.zip
Grato,
Fico aguardando resposta.
veja se este funciona o DATAGRID.
https://www.devmedia.com.br/imagens/discovirtual/176193/Upload_Download_Teste-2.zip
Grato,
Fico aguardando resposta.
GOSTEI 0
Wesley Yamazack
31/03/2009
Olá,
Bom estarei analisando sua dúvida e vendo o código fonte. Em breve retornarei.
Att,
Wesley Y
Bom estarei analisando sua dúvida e vendo o código fonte. Em breve retornarei.
Att,
Wesley Y
GOSTEI 0
Rogério Souza
31/03/2009
Olá, tudo bem ?
=> Desejo fazer algo SIMPLES no GRIDVIEW,
que consigo em um COMPONENTE MAIS ANTIGO como o DATAGRID :
=> COMO CONSULTAR cada CÉLULA do GRIDVIEW ?
Como consultei do DATAGRID (está funcionando no código)
É somente ISTO que desejo fazer ao CLICAR na LINHA DESEJADA. MAIS NADA.
Creio que não terei que
TROCAR TODO O CÓDIGO, como disse o outro programador,
pois os dados estão abertos/CARREGADOS no
GRIDVIEW e no DATAGRID, de maneira IDÊNTICA,
sendo que a única coisa que falta é corrigir o modo de
"chamar" a linha no GRIDVIEW.
Aguardo atenciosamente,
CARLOS A.F.Silva.
Analista de Sistemas - Desenvolvedor Delphi Win32
Professor do Instituto Federal de Muzambinho.
Sócio - Ferreira e Souza Informática.
=> Desejo fazer algo SIMPLES no GRIDVIEW,
que consigo em um COMPONENTE MAIS ANTIGO como o DATAGRID :
=> COMO CONSULTAR cada CÉLULA do GRIDVIEW ?
Como consultei do DATAGRID (está funcionando no código)
É somente ISTO que desejo fazer ao CLICAR na LINHA DESEJADA. MAIS NADA.
Creio que não terei que
TROCAR TODO O CÓDIGO, como disse o outro programador,
pois os dados estão abertos/CARREGADOS no
GRIDVIEW e no DATAGRID, de maneira IDÊNTICA,
sendo que a única coisa que falta é corrigir o modo de
"chamar" a linha no GRIDVIEW.
Aguardo atenciosamente,
CARLOS A.F.Silva.
Analista de Sistemas - Desenvolvedor Delphi Win32
Professor do Instituto Federal de Muzambinho.
Sócio - Ferreira e Souza Informática.
GOSTEI 0
Wesley Yamazack
31/03/2009
Olá,
Analisei o código que me passou e gostaria de lembrá-lo de um coisa. O fato de você conseguir fazer num componente antigo não significa que poderá ser feito em um componente mais novo. Principalmente em se tratando de .Net. É como o outro analista lhe explicou: Fazer do jeito que você quer não tem como, não é viável pois o argumento não fornece os dados que precisamos.
O GridView não é um data Data Grid melhorado ele é um componente complemente diferente. Para que possa entender seria como se você quisesse consertar a Injeção eletrónica de uma Mercedes da mesma maneira que consertava o carburador de um fusca.
Portanto como o Rodrigo Carreiro Explicou: Tem como resolver seu problema mas não como quer que seja feito. Temos várias maneira de obter o resultado final mas nenhuma deles do jeito que você quer. Você diz que só quer recuperar o conteúdo de uma linha do Grid View mas não esqueça que seus dados vem de um array de string e que seu GridView não tem colunas de dados. O conteúdo é apenas “jogado” no Grid View.
Se ao menos houvesse um Data Set com colunas definidas poderíamos utilizar como dito abaixo o RowDataBound.
Se achar por bem podemos apresentar uma solução porém nada parecido com o que você tem ai ou você pode continuar com o Data Grid.
Estamos a disposição !!!
Att,
Wesley Y
Analisei o código que me passou e gostaria de lembrá-lo de um coisa. O fato de você conseguir fazer num componente antigo não significa que poderá ser feito em um componente mais novo. Principalmente em se tratando de .Net. É como o outro analista lhe explicou: Fazer do jeito que você quer não tem como, não é viável pois o argumento não fornece os dados que precisamos.
O GridView não é um data Data Grid melhorado ele é um componente complemente diferente. Para que possa entender seria como se você quisesse consertar a Injeção eletrónica de uma Mercedes da mesma maneira que consertava o carburador de um fusca.
Portanto como o Rodrigo Carreiro Explicou: Tem como resolver seu problema mas não como quer que seja feito. Temos várias maneira de obter o resultado final mas nenhuma deles do jeito que você quer. Você diz que só quer recuperar o conteúdo de uma linha do Grid View mas não esqueça que seus dados vem de um array de string e que seu GridView não tem colunas de dados. O conteúdo é apenas “jogado” no Grid View.
Se ao menos houvesse um Data Set com colunas definidas poderíamos utilizar como dito abaixo o RowDataBound.
Se achar por bem podemos apresentar uma solução porém nada parecido com o que você tem ai ou você pode continuar com o Data Grid.
Estamos a disposição !!!
Att,
Wesley Y
GOSTEI 0
Devmedia
31/03/2009
Rogério,
a resposta do consultor solucionou o seu problema? Podemos fechar o chamado?
No aguardo.
a resposta do consultor solucionou o seu problema? Podemos fechar o chamado?
No aguardo.
GOSTEI 0