Usuário com melhor resposta
Como receber uma página como parâmetro para um método

Pergunta
-
Olá, estou desenvolvendo uma aplicação que em parte é composta por uma série de páginas web, que nada mais são do que modelos. Para ser mais específico, são 105 desses modelos.
Em sua estrutura, todos esses modelos são iguais, ou seja, todas tem os mesmo TextBox, Labels, TextAreas, CheckBox com as mesmas IDs, ou seja, na estrutura, todas são absolutamente iguais. A única coisa que muda entre elas é o conteúdo escrito.
Hoje, eu chamo um método para repassar os dados do banco para os componentes da página, como no exemplo:
public partial class PROTOTIPO : pageBase { protected void Page_Load(object sender, EventArgs e) { //Verifica se a página é um PostBack if (!Page.IsPostBack) { if (Session["IdRecuperar"] != null) { /* REALIZA A VERIFICAÇÃO PARA VER SE EXISTE PRODUTO COM DESCRICAO EM ANDAMENTO */ //Instancia os objetos a serem usados voMestre objVOEntrada = new voMestre(); //Recupera a ID do produto através do objeto Session objVOEntrada.idProduto = Convert.ToInt32(Session["IdRecuperar"]); Session["TipoAlteracao"] = "REVISAO"; //Recupera o objeto contendo as definições do produto descrito voMestre objVO = new daoDescricao().recuperaDescricao(objVOEntrada); Session["Id"] = objVO.Codigo; Session["Responsavel"] = objVO.Responsavel; txtCodigo.Text = objVO.Codigo.ToString(); txtNome.Text = objVO.Nome; txtDescricao.Text = objVO.Descricao; txtCaracteristicas.Text = objVO.Caracteristicas; txtRecursos.Text = objVO.Recursos; txtConexoes.Text = objVO.Conexoes; txtInformacoes.Text = objVO.InfAdicionais; txtItensInclusos.Text = objVO.ItensInclusos; txtFabricante.Text = objVO.Fabricante; txtTelefone.Text = objVO.Telefone; txtGarantia.Text = objVO.Garantia; txtDimensoes.Text = objVO.Dimensoes; txtPesoL.Text = Convert.ToString(objVO.PesoL); txtPesoB.Text = Convert.ToString(objVO.PesoB); txtTitle.Text = objVO.Title; txtDescription.Text = objVO.Description; } else { /* RECUPERA OS DADOS BÁSICOS DA DESCRICAO */ //Instancia os dados necessários para a descricao voMestre objVOEntrada = new voMestre(); objVOEntrada.idProduto = Convert.ToInt32(Session["idProduto"]); Session["TipoAlteracao"] = "DESCRICAO"; this.carregaTextBox(); } } } private void SalvaDescricao() { voMestre objVO = new voMestre(); objVO.Filtro = Session["TipoAlteracao"].ToString().ToUpper().Trim(); objVO.idProduto = Convert.ToInt32(txtId.Text); objVO.Codigo = Convert.ToInt32(txtCodigo.Text); objVO.Nome = txtNome.Text; objVO.DescricaoResponsavel = Membership.GetUser().ToString().ToUpper().Trim(); objVO.Video = txtVideo.Text.Trim(); objVO.Descricao = txtDescricao.Text.Trim(); objVO.Caracteristicas = txtCaracteristicas.Text.Trim(); objVO.Recursos = txtRecursos.Text.Trim(); objVO.Conexoes = txtConexoes.Text.Trim(); objVO.InformacoesAdicionais = txtInformacoes.Text.Trim(); objVO.ItensInclusos = txtItensInclusos.Text.Trim(); StringBuilder imagens = new StringBuilder(); imagens.AppendLine(txtUrl1.Text.Trim()); imagens.Append(""); imagens.AppendLine(txtUrl2.Text.Trim()); imagens.Append(""); imagens.AppendLine(txtUrl3.Text.Trim()); objVO.Imagens = imagens.ToString(); objVO.FabricanteNome = txtFabricante.Text; objVO.Telefone = txtTelefone.Text; objVO.Garantia = txtGarantia.Text; objVO.Dimensoes = txtDimensoes.Text; objVO.SiteFabricante = txtSite.Text; objVO.PesoLiquido = txtPesoL.Text; objVO.PesoBruto = txtPesoB.Text; //Metadescription objVO.MetatagTitle = txtTitle.Text; objVO.MetatagDescription= txtDescription.Text; //Verifica o campo "Finalizado" if (ckFinalizado.Checked == true) { objVO.MarcadorDescricao = true; objVO.MarcadorDescricaoAndamento = false; } else { objVO.MarcadorDescricao = false; objVO.MarcadorDescricaoAndamento = true; } gerenciaDescricao metodo = new gerenciaDescricao(); metodo.processoDescricao(objVO); //Mostra mensgem base.ShowMessage("O registro foi salvo e exportado com sucesso!"); } private void carregaTextBox() { /*Conteúdo a ser carregado aqui */ } protected void btnSalvar_Click(object sender, EventArgs e) { this.SalvaDescricao(); } }
O que eu gostaria de fazer é ao invés de manualmente para cada componente da página como faço nesse trecho:
Session["Id"] = objVO.Codigo; Session["Responsavel"] = objVO.Responsavel; txtCodigo.Text = objVO.Codigo.ToString(); txtNome.Text = objVO.Nome; txtDescricao.Text = objVO.Descricao; txtCaracteristicas.Text = objVO.Caracteristicas; txtRecursos.Text = objVO.Recursos; txtConexoes.Text = objVO.Conexoes; txtInformacoes.Text = objVO.InfAdicionais; txtItensInclusos.Text = objVO.ItensInclusos; txtFabricante.Text = objVO.Fabricante; txtTelefone.Text = objVO.Telefone; txtGarantia.Text = objVO.Garantia; txtDimensoes.Text = objVO.Dimensoes; txtPesoL.Text = Convert.ToString(objVO.PesoL); txtPesoB.Text = Convert.ToString(objVO.PesoB); txtTitle.Text = objVO.Title; txtDescription.Text = objVO.Description;
É poder enviar a Página para um método, e então dentro dele encontrar esses componentes, e então dar os devidos valores a eles. Minha intenção com isso é poupar o retrabalho caso em algum futuro eu precise fazer algum tipo de alteração nesse 105 formulários que lhes disse.
Porém o que eu não sei fazer é enviar essa página como um parametro para um método e nem como encontrar esse componentes que citei, como
txtDimensoes ou
txtDescription
dentro desse método.
Se alguém puder me ajudar, fico muito grato.
Grande abraço!
- Editado geanito quarta-feira, 28 de março de 2012 13:36
Respostas
-
acho que vc teria que relacionar o nome do componente com o campo que vem da base, ou na sua page base ter esses métodos
SalvaDescricao() na sua page base como virtual, quando tiver alguma alteração vc faz um override
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
- Editado Seilor Bonancio JuniorModerator quinta-feira, 29 de março de 2012 11:59
- Marcado como Resposta Harley Araujo sexta-feira, 30 de março de 2012 13:01
Todas as Respostas
-
acho que vc teria que relacionar o nome do componente com o campo que vem da base, ou na sua page base ter esses métodos
SalvaDescricao() na sua page base como virtual, quando tiver alguma alteração vc faz um override
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
- Editado Seilor Bonancio JuniorModerator quinta-feira, 29 de março de 2012 11:59
- Marcado como Resposta Harley Araujo sexta-feira, 30 de março de 2012 13:01
-