none
Como receber uma página como parâmetro para um método RRS feed

  • 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
    quarta-feira, 28 de março de 2012 13:34

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


    quinta-feira, 29 de março de 2012 11:58
    Moderador

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


    quinta-feira, 29 de março de 2012 11:58
    Moderador
  • Olá Seilor, desculpe o amadorismo, mas eu não tenho nem idéia de como fazer isso. Pode me apontar um modelo, ou lugar onde possa ver como fazer isso?
    sexta-feira, 30 de março de 2012 13:14