Ir para conteúdo

POWERED BY:

Arquivado

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

Luiz Itatiba

Como Chamo um valor de uma mesma Variavel em vários eventos e métodos

Recommended Posts

Olá sou iniciante em C# e estou com a seguinte situação baseado no codigo completo da aplicação abaixo em ASP.NET AJAX-ENABLED - WebApplication project como podem notar existe acredito eu que sejam metodos ou eventos o que é chamado de protected void em uma aplicação C#, se eu estiver errado me corrijam mas preciso mencionar os mesmos pq o que ocorre é o sequinte No evento 'Page_Load' da pagina é criada a variavel do tipo string 'resolucao' e acionado o metodo request p/ capturar o parametro vindo de outra pagina de resolução de tela como visto abaixo, nesta parte do código //Recupera o Parâmetro da resolução da paginastring resolucao;resolucao = (Request["resolucao"]); e criada uma decisao onde o mesmo reconhece normalmente a variavel resolucao criada Acontece que para o evento, metodo ou variavel criada, 'RedirecionaURL' conforme visto abaixoprotected static string RedirecionaURL(object obj){DataRowView dv = obj as DataRowView;return string.Format("https://meudominio.com/cybersnet/publica/detalhes"+ resolucao +".asp?codigo="+dv["codigo"]); } é dado o seguinte erro ao entrar em execução ou build da aplicação Error 1 The name 'resolucao' does not exist in the current context C:\Inetpub\wwwroot\cybersnet\publica\indicefonteoficial\indice\Default.aspx.cs 224 87 indicee tb dentro desse mesmo evento eu tentei colocar o mesmo metodo request para reconhecer a variavel como abaixo //Recupera o Parâmetro da resolução da paginastring resolucao;resolucao = (Request["resolucao"]); só que aí ele não reconheceu o metodo Request, se alguem pd me ajudar de ante-mão já agradeço Aqui vai o Código Completo em C# da aplicação protected void Page_Load(object sender, EventArgs e){//Recupera o Parâmetro da resolução da paginastring resolucao;resolucao = (Request["resolucao"]);//resolucao = "1024";//Carrega a Variavel de Tamanho da paginaString tampagina;int tamcount;int tamcoluns;//Rotina Decisão de Tamanho da Pagina //Mediante Resoluçãoif (resolucao != "1024"){Produto.RepeatColumns = 2;tampagina = "4";tamcoluns = 1;}else{Produto.RepeatColumns = 3;tampagina = "6";tamcoluns = 2;}//monta selectString qry = "Select * from produtos where catalogo like '%nv%' order by produto";// conectaOleDbConnection objConn = new OleDbConnection(provider + banco);OleDbDataAdapter objCommand = new OleDbDataAdapter(qry, objConn);DataSet ds = new DataSet();objCommand.Fill(ds, "produtos");// popula o pageddatasourcePagedDataSource pg = new PagedDataSource();// popula a var tamcount tamcount = pg.Count;pg.DataSource = ds.Tables["produtos"].DefaultView;pg.AllowPaging = true;pg.PageSize = Convert.ToInt32(tampagina);// pega pagina atual que veio por parametroint atual;if (Request.QueryString["Page"] != null)atual = Convert.ToInt32(Request.QueryString["Page"]);elseatual = 1;// seta pagina atual do pageddatasourcepg.CurrentPageIndex = atual - 1;// caso queria o total de paginas, adicione um label na tela//labTotal.Text = pg.DataSourceCount.ToString();labTotal.Text = "Pág.:"+ atual + " de " + pg.PageCount.ToString(); //labRegistrosString nomepagina;nomepagina = "Promoções";LabRegistros.Text = " Total de " + pg.DataSourceCount.ToString() + " Produtos em "+ nomepagina;// cria link "anterior" e "proximo" tem que ter na tela dois hyperlink "hpanterior e hpproxima"if (!pg.IsFirstPage)hpAnterior.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(atual - 1)+ "&resolucao=" + resolucao;if (!pg.IsLastPage) hpProxima.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(atual + 1) + "&resolucao=" + resolucao;if (atual == 1)hpAnterior.Visible = false;if (pg.PageCount == atual)hpProxima.Visible = false;//if (pg.Count <= 2)//Produto.GridLines = GridLines.Horizontal;if (pg.Count <= tamcoluns)Produto.RepeatColumns = tamcount; // popula o datalist Produto.DataSource = pg;Produto.DataBind();}//Variavel estatica que retorna o resultado//da função/rotina no source RetornaPreço do Datalistprotected static string RetornaPreço(object obj){DataRowView dv = obj as DataRowView;if (dv["valorpromocao"] != null || dv["valorpromocao"].ToString().Length != 0) // Não deveria retornar DBNull.Value nao ?? return string.Format("De <span class='PrecoDE'>{0:C2}</span><br>Por {1:C2}", dv["valor"], dv["valorpromocao"]);return string.Format("Por {0:C2}", dv["valor"]); }protected static string RedirecionaURL(object obj){DataRowView dv = obj as DataRowView;return string.Format("https://meudominio.com/cybersnet/publica/detalhes"+ resolucao +".asp?codigo="+dv["codigo"]); }

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º - organiza o codigo dentro do CODE do forum para ficar mais organizado.2º - para você usar uma variavel em todo o codigo você precisa declara-la fora das funções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma variavel pública dentro da classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já esperimentou criar a variável resolucao antes do page_load...por exemplo....

 

...

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

public partial class dataset : System.Web.UI.Page

{

private String resolucao; //tbm pode ser public, mas private tá de bom tamanho!!!

 

protected void Page_Load(object sender, EventArgs e)

{

 

resolucao = Request["resolucao"];

 

...

}

 

E caso você tenha a necessidade de passar este valor para outras páginas você deve usar variáveis de sessão, por exemplo...

 

Session["resolucao"] = Request["resolucao"]; //Cria uma variável de sessão com o valor da querystring

 

Para recuperar o valor desta variável você vai ter que realizar um casting...exemplo...

 

String resolucao = (String)Session["resolucao"]; //Realiza o casting e atribui o valor da sessão à variável!

 

Desta forma enquanto o ousuário permanecer em seu website você poderá pegar o valor da resolução em qualquer página basta ralizar o casting acima!!!

 

flw...

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.