Luiz Lahr 0 Denunciar post Postado Janeiro 13, 2008 Pessoal, mais uma vez venho solicitar socorro de vcs... como disse antes naum tenho mto conhecimento de aspx estou com o seguinte problema.... a maior parte do meu site eh desenvolvida em .asp mas estou montando uma parte em .aspx devido ao uso de alguns componentes de tratamento de imagens.... minha pagina de login e as que geram as sessions com as informacoes do usuario sao .asp e a pagina de upload eh .aspx quando chamo a session com o codigo do usuario na pagina .aspx nada aparece.... isso eh algum problema de comunicacao entre elas ou eu que estou cometenco erros mesmo? obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Lab Design 0 Denunciar post Postado Janeiro 14, 2008 Luiz Lahr, primeiro é preciso ver como você ta tentando pegar essas sessions. Eu tb apanhei um pouco estes dias porque to começando tambem nesta plataforma e optei pelo C# e o que descobri até agora se te ajudar é o seguinte: Na página *.cs (correspondente ao *.aspx) eu simplesmente uso Session["nomedaSession"] para criar ou acessar uma session. - Observe que é "Session" e não session ou SESSION porque o C# é caso sensitivo e em lugar do "()" do ASP é "[]". Agora se eu preciso acessar essa session numa outra página eu tenho que referenciar à classe e neste caso eu descobri que tenho que fazer referencia desta da HttpContext.Current.Session["strConn"].ToString() Ex.: na minha masterpage.aspx so tem controles mas no masterpage.aspx.cs eu preciso criar algumas sessions então eu fiz: // esta linha cria a var session strConn com o caminho para a base de dados mdb. Session["strConn"]="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/Sites/Ridgid/Dados/"; // conforme o dropdown uam database deve ser selecionada. // o nome da tabela esta no value do dropdown // a session idxCombo é pra selecionar o option quando executar AutoPostBack ( pois ele voltaria para o indice 0 DropDownList tabela = (DropDownList)form1.FindControl("drpPeriodo"); if (tabela.SelectedIndex >=0) { Session["mdbTable"] = tabela.Text; Session["idxCombo"] = tabela.SelectedIndex; } else if (Session["mdbTable"] == null) { Session["mdbTable"] = "GE_Atual.mdb"; Session["idxCombo"] = 0; } // uma vez recuperado o nome da database a ser utilizada, deve ser completado a connectionstring Session["strConn"] += Session["mdbTable"].ToString() + ";"; // observe aqui que a var do lado esquerdo não é utilizado o .Text ou .ToString(). se tentar colocar dá erro de compilação. // agora usando a session na conexão: OleDbConnection mdbConn = new OleDbConnection(Session["strConn"].ToString()); // neste caso é obrigatório o .ToString() porque o Session é um objeto. ************* Observe que aqui eu to na pagina de criação da Session então eu me refiro à ela diretamente pelo Session["nomedasession"].ToString() Agora vou usar a mesma session um class la em App_code. Se eu tentar usar o Session["nomedasession"].ToString() - retorna uma mensagem de erro indicando que Session não faz parte do contexto ou algo similar a isso. então fuçando na net eu descobri que neste caso eu preciso acessar pela class ou seja: static dsDistribuidores() { _connectionString = HttpContext.Current.Session["strConn"].ToString(); } // e agora na conexão: // dsDistribuidoresEstados // revisao 1.0 - 09/01/2008 [system.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjec tMethodType.Select, true)] public static List<dsDistribuidores> DistribuidoresEstados(string uf) { string sql = "SELECT *, vendas as total FROM distr_estados WHERE (uf='" + uf + "')"; //string sql = "SELECT *, vendas as total FROM distr_estados"; OleDbConnection con = new OleDbConnection(_connectionString); OleDbCommand cmd = new OleDbCommand(sql, con); Espero que te ajude.... Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 14, 2008 Como o Lab Design comentou se estiver usando C#, para usar Sessions você utiliza o []. Agora caso seja o VB é da mesma forma que no Asp utilizando (). Em relação ao HttpContext.Current. eu nunca precisei utilizar para receber o valor de uma Session, simplesmente o .ToString() funciona. Compartilhar este post Link para o post Compartilhar em outros sites
Lab Design 0 Denunciar post Postado Janeiro 14, 2008 olha so quintelab: a Session["strConn"] foi criada no masterpage.aspx.cs certo. eu to tentando acessar o class dsDistribuidores.cs na pasta App_code: Entao mudei a string para: _connectionString = Session["strConn"].ToString(); e voalá: Erro de Compilação Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente. Mensagem de Erro do Compilador: CS0103: Nome 'Session' não existe no contexto atual Erro de Origem: Linha 28: static dsDistribuidores() Linha 29: { Linha 30: _connectionString = Session["strConn"].ToString(); Linha 31: } Linha 32: Arquivo de Origem: c:\VSProjetos\GE\App_code\dsDistribuidores.cs Linha: 30 volto a linha como anteriormente: Tá lá o gridview corretamente na tela.... Como eu disse, eu to aprendendo também e me deparo com situações inusitadas que na plataforma php eu tiro de letra mas aqui também tenho muitas dúvidas e apanho um bocado. Compartilhar este post Link para o post Compartilhar em outros sites
Lab Design 0 Denunciar post Postado Janeiro 14, 2008 olha so quintelab: a Session["strConn"] foi criada no masterpage.aspx.cs certo. eu to tentando acessar o class dsDistribuidores.cs na pasta App_code: Entao mudei a string para: _connectionString = Session["strConn"].ToString(); e voalá: Erro de Compilação Descrição: Erro ao compilar um recurso necessário para atender esta solicitação. Examine os detalhes específicos do erro e modifique o código fonte apropriadamente. Mensagem de Erro do Compilador: CS0103: Nome 'Session' não existe no contexto atual Erro de Origem: Linha 28: static dsDistribuidores() Linha 29: { Linha 30: _connectionString = Session["strConn"].ToString(); Linha 31: } Linha 32: Arquivo de Origem: c:\VSProjetos\GE\App_code\dsDistribuidores.cs Linha: 30 volto a linha como anteriormente: Tá lá o gridview corretamente na tela.... Como eu disse, eu to aprendendo também e me deparo com situações inusitadas que na plataforma php eu tiro de letra mas aqui também tenho muitas dúvidas e apanho um bocado. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 14, 2008 Lab Design não trabalho com Master Page, não tive como testar ainda, e como você citou que dúvidas são constantes e comigo também é assim, dei uma pesquisada, da uma olhada neste artigo que explana em relação a necessidade de utilizar a classe HttpContext. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites