Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Mailho

[Resolvido] abrir nova pagina a partir da ID selecionada

Recommended Posts

Abr outro topico para separar os problemas!

continuando o que eu preciso é carregar uma pagina com os dados do cliente ao clicar nele.

 

Por exemplo os clientes cadastrados aparecem na gridView, e ao clicar no nome de um deles (que sera um link) este link mande o usuario para uma nova pagina com todos os dados daquele cliente(que ja fora cadastrados)! ou seja, preciso que o link puxe o cliente pelo id (ou algo assim) para puxar seus dados! outra coisa, é que eu configurei o gridView pelo codeBehind (c#). Que aliais eu fiz aqui xD.

 

se puderem me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw mano funfo aqui! fico feiao mas funfo! tem como eu "embeleza ele"? tipo, ta na label entao ta assim:

 

Nome: TESTE1 - Telefone: (11) 1111-1111 - Data: 09/03/09

 

o problema é que como eu fiz todos os campos por code behind e só os links por design ele ta bagunçando a tabela! Tipo, me deram a ideia de fazer por item template.

 

alguma sugestao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu queria deixar o link pra chamar direito o campo NOME e nao colocar o texto fixo "detalhes", mas ta dando erro, por que se eu chamar o campo nome ele vai ter na grid dois campos chamando a coluna nome. mas eu deixei detalhes mesmo e ta melhor.

 

mas agora tipo, eu só posso chamar os campos que eu ja mostro no gridView da pagina original (atraves da string select)! tipo o campo nome e tel; mas a ideia é clicar no link para entao mostrar todos os itens do cliente; se for mostrar os mesmos itens do gridVIew nao adianta muito xD. quando eu tento colocar outro campo ele fala que nao existe na string select.

 

como faço pra mostrar todos os campos do banco nessa label se elas nao foram chamadas na gridView da pagina anterior? (tendeu???? :huh:).

 

 

vlw mano

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas eu nao vi nenhum select na pagina final no link que voce me mandou! ele faz o select pela smart tag na pagina original.

 

eu descobri um modo! faço o select na pagina original entao coloquei os campos como visible false! ele ta chamando todo mundo agora! só que o codigo ta porcao! alem da label que chama os itens! eu preciso primeiro melhorar essa label! ta muito feito assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você não entendeu bem, o artigo era simplesmente para te mostrar como passar um parâmetro na url a partir de um Hyperlink da grid.

Na outra página basta você pegar esse código com um Request e fazer seu select.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas no exemplo ele nao fala nada sobre request ou select! ele só fala da label! entao eu usei assim. se tiver um jeito melhor seria bom, como faço dese modo que voce disse? eu queria ao inves de usar uma label coloca em um datagrid ou gridview.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia Andre

 

Acho que sobre isso eu posso falar, pois tambem tive esse problema dentre varios outros.

 

Voce disse que se colocar um Hyperlink para o campo Nome, ficara com 2 campos nome, foi isso?

Se foi e simples, tire o outro campo Nome de deixe-o apenas como Hyperlink e quando o usuario clicar no nome, automaticamente o ID do registro sera transferido para outra pagina que sera chamada.

 

Na outra pagina voce pega o ID passado e ai pode efetuar um Select para buscar os demais dados na base de dados.

 

 

Abrindo as tarefas do GridView (Gridview Tasks), va em Edit Collumns, clique no campo do Hyperlink, depois va em Navigate URL e informa a URL de destino (Ha um botao para procura-la).

 

Depois va nos 3 campos abaixo:

 

DataNavigateUrlFields = ID_REL (Nome_do_Seu_Campo_ID)

DataNavigateUrlFormatStrings = beneficios.aspx?bene_id={0} (URLde destino.aspx?Nome_do_Seu_Campo_ID={0})

DataTextFields = CLIENTE_NOME ( Nome do campo que sera exibido no Hyperlink.(Nome do cliente por exemplo))

 

Na pagina que sera chamada no PageLoad, basta chamar o valor do ID

 

IdBene = Request.QueryString("BENE_ID")

IdBene (Uma variavel tipo Double que eu usei para receber o ID da pagina anterior)

 

 

Boa Sorte

 

Sidnei

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao SID_SILVA, o problema é que eu estou chamando o campo nome pelo code behind! entao pra eu tirar ele eu preciso tirar ele da string select! se ele nao tiver no selec o Hiperlink nao consegue achar ele.

 

outra coisa, no campo DataNavigateUrlFields voce usou uma id e no DataNavigateUrlFormatStrings outra id! eu uso apenas uma id (idcliente que é a chave da tabela) em ambas ou eu tenho que usar 2 id como voce mostrou? esse IdBene seria oq? eu estou mostrando os itens em uma label.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Andre

 

Mas foi exatamente isso o que eu explanei.

Voce tem um link do GridView (Nome do Cliente) por exemplo, dai voce clica nesse link e vai para outra pagina.Nessa outra pagina e trazido o ID, ou mais algum dado do cliente e esses dados sao exibidos nessa nova pagina aberta.

 

Quanto a voce ter populado o grid via codigo, nao vejo nenhum problema, pois mesmo assim voce pode acessar as GridViwe Tasks dele, como eu disse.

 

Porem eu acho melhor voce passar apenas o ID para a outra pagina e nela usar esse ID para fazer uma pesquisa e trazer os dados do cliente.

 

 

Boa Sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, eu fiz assim: coloquei no select do grid a coluna idcliente, no edit colum do grid coloquei assim:

 

navigateUrl: contatos.aspx

datanavigateurlFields: idcliente

datanavigateurlformatstring: contatos.aspx?idcliente={0}

 

dai na pagina que sera carregada coloquei no page load:

 

Label1.Text = Request.QueryString("idcliente");
Label1.Text(Double);

mas ta dando pau nessa primeira linha do LAbel1:

 

Non-invocable member 'System.Web.HttpRequest.QueryString' cannot be used like a method.

 

tentei sem o .text mas nao rolo tambem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola de Novo.

 

esse IdBene seria oq?

 

E apenas uma variavel do tipo Double que eu usei para receber o ID da pagina anterior

 

IdBene = Request.QueryString("BENE_ID")

IdBene (Uma variavel tipo Double que eu usei para receber o ID da pagina anterior)

 

Eu nao gosto de fazer isso, claro que nao ha nenhum problema em faze-lo :

 

IF Request.QueryString("BENE_ID") <> 0 THEN

" ALGUMA COISA"

ENDIF

 

Entao jogo o Request.QueryString("BENE_ID") para uma variavel e trabalho com ela.

 

IF IdBene <> 0 THEN

" ALGUMA COISA"

ENDIF

 

 

Bye

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Novamente

 

Eu programo em VB e nao em C#, que alias eu ainda nao domino, por nao usar.

 

Mas acho que isso aqui que voce colocou esta errado.

 

Label1.Text(Double);

 

 

Bye

Compartilhar este post


Link para o post
Compartilhar em outros sites

A o codigo que eu fiz ta "porco" mas ta funfando! eu só preciso editar ele mesmo. deixar mais bonito. eu to usando a seguinte string pra chamar os itens:

 

 

Label1.Text = string.Format("Nome da Empresa: {0}" + ("<br>") + ("<br>") + "  CNPJ: {1}" + ("<br>") + ("<br>") + " CPF: {2}" + ("<br>") + ("<br>") + " IE: {3}" + ("<br>") + ("<br>") + " Cep: {4}" + ("<br>") + ("<br>") + "  Numero: {5}" + ("<br>") + ("<br>") + "  Dados Complementares: {6}" + ("<br>") + ("<br>") + "  Telefone:  {7}" + ("<br>") + ("<br>") + " Telefone Secundário: {8}" + ("<br>") + ("<br>") + " Fax: {9}" + ("<br>") + ("<br>") + " Tipo de Cliente: {10}" + ("<br>") + ("<br>") + " Caminho da Proposta: {11}" + ("<br>") + ("<br>") + " Data: {12}" + ("<br>") + ("<br>") + " ID do Serviço: {13}" + ("<br>") + ("<br>") + " Status: {14}" + ("<br>") + ("<br>") + " Campo de Exibição: {15}", Request.Params["nome"], Request.Params["cnpj"], Request.Params["cpf"], Request.Params["ie"], Request.Params["cep"], Request.Params["numero"], Request.Params["dadoscompl"], Request.Params["tel"], Request.Params["telsec"], Request.Params["fax"], Request.Params["tipcli"], Request.Params["regprop"], Request.Params["dataincl"], Request.Params["idserv"], Request.Params["status"], Request.Params["campexib"]);

 

dai eu mudei a cor da letra por css mesmo! eu pretendia jogar em uma gridView ou um datalis sei la. ou pelo menos editar o campo das variaveis. como por exemplo:

 

Label1.Text = string.Format("Nome da Empresa: {0}

Label1.Text = string.Format("Nome da Empresa:" + ("color:red") + "{0}" + ("<br>") + ("<br>") + 
" CNPJ:" + ("color:red") + " {1}" + ("<br>") + ("<br>")

alguma coisa assim! logico que esse " + ("color:red") + " nao funciona, mas acho que seria algo desse tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola

 

 

Fiz um teste rapido e funcionou.

 

Populei o gridView atraves de codigo, criei nas GridView Tasks, um campo Hyperlink, preenchi aqueles 2 campos que citei e funcionou perfeitamente.

Quando clico no link, abro uma janela pop-up.

 

 

Um Abraco

 

 

Sidnei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais Uma

 

Voce disse o seguinte:

 

outra coisa, no campo DataNavigateUrlFields voce usou uma id e no DataNavigateUrlFormatStrings outra id! eu uso apenas uma id (idcliente que é a chave da tabela) em ambas ou eu tenho que usar 2 id como voce mostrou? esse IdBene seria oq? eu estou mostrando os itens em uma label.

 

 

Na verdade eu dei um copiar/colar no campo errado.,pois na verdade e utilizado apenas 1 ID, no caso abaixo, claro.

 

DataNavigateUrlFields = ID_REL (Nome_do_Seu_Campo_ID)

DataNavigateUrlFormatStrings = beneficios.aspx?ID_REL ={0} (URLde destino.aspx?Nome_do_Seu_Campo_ID={0})

 

 

Eu nao entendi o que voce esta fazendo aqui em baixo:

 

Label1.Text = string.Format("Nome da Empresa: {0}" + ("<br>") + ("<br>") + " CNPJ: {1}" + ("<br>") + ("<br>") + " CPF: {2}" + ("<br>") + ("<br>") + " IE: {3}" + ("<br>") + ("<br>") + " Cep: {4}" + ("<br>") + ("<br>") + " Numero: {5}" + ("<br>") + ("<br>") + " Dados Complementares: {6}" + ("<br>") + ("<br>") + " Telefone: {7}" + ("<br>") + ("<br>") + " Telefone Secundário: {8}" + ("<br>") + ("<br>") + " Fax: {9}" + ("<br>") + ("<br>") + " Tipo de Cliente: {10}" + ("<br>") + ("<br>") + " Caminho da Proposta: {11}" + ("<br>") + ("<br>") + " Data: {12}" + ("<br>") + ("<br>") + " ID do Serviço: {13}" + ("<br>") + ("<br>") + " Status: {14}" + ("<br>") + ("<br>") + " Campo de Exibição: {15}", Request.Params["nome"], Request.Params["cnpj"], Request.Params["cpf"], Request.Params["ie"], Request.Params["cep"], Request.Params["numero"], Request.Params["dadoscompl"], Request.Params["tel"], Request.Params["telsec"], Request.Params["fax"], Request.Params["tipcli"], Request.Params["regprop"], Request.Params["dataincl"], Request.Params["idserv"], Request.Params["status"], Request.Params["campexib"]);

 

Claro que voce esta concatenando varios valores a um Label, mas porque voce esta jogando tantas informacoes em um unico Label?

Como o nosso amigo Quintelab disse, alias ele ja me ajudou bastante, pois tambem sou iniciante.Primeiro voce pega o ID em questao, na pagina que possui o campo que sera clicado atraves do Hyperlink.

 

Na pagina seguinte a partir do Request.QueryString, voce paga o ID que foi passado e ai faz um Select para pegar os demais registros da sua base de dados.

 

Passar varias informacoes a partir da primeira pagina para a segunda nao e uma boa ideia.

 

 

Bye

 

Sidnei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade essa parte nao e muito complicada nao e eu digo isso porque eu tambem estou quebrando a cabeça com o ASP.NET.

 

Na segunda pagina, aquela que sera aberta depois que voce clisar no link do nome do cliente, voce deve colocar o comando abaixo para pegar o ID da primeira pagina.

 

 

IdBene = Request.QueryString("BENE_ID")

 

Como voce ira fazer fica a seu criterio, eu prefiro usar uma variavel mas o ID da primeira pagina esta em Request.QueryString("BENE_ID").

Voce deve fazer isso no evento PageLoad.

 

Entao verifique se o Request.QueryString("BENE_ID") ou a variavel IdBene , possui algum valor.Se possuir entao efetue o Select que sugerimos para trazer os demais campos da base de dados.

 

 

E simples.

 

 

Um Abraco

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.