Ir para conteúdo

POWERED BY:

Arquivado

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

Marcia Rosa

Controles dinâmicos

Recommended Posts

Olá gente....

 

Criei dinamicamente controles de FileUpload, TextBox e Button. Até aí tudo bem. Todos estão na tela.

 

Só que não consigo fazer duas coisas:

1. Criar o evento Click no botão para pegar os dados inseridos nas caixas. Tudo que pesquisei sempre indicava para fazer btn.Click += new EventHandler(this.btn_Click);..sendo que criei esse void btn_Click(object sender, EventArgs e)...mas não tem jeito de funcionar.

 

2. pegar os IDs dos controles. tipo...se tento com um botão inserido manualmente na tela pegar o nome de um controle que criei no código, diz que o objeto não existe :(

 

Qualquer dica é bem vinda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quintelab

 

Não sei se estou sendo equivocada, mas creio que com datalist não resolverá meu problema.

 

Tenho a seguinte situação:

 

A pessoa vai ter que enviar fotos para o servidor. Fiz um DropDownList que a pessoa pode informar quantas fotos ela quer enviar para o servidor. Quando der o postback faço um laço no numero de fotos que a pessoa selecionou e crio, neste laço, um FileUpload (para o arquivo) e um TextBox (para a descrição da foto). No final crio o botão que no clique deve pegar todos os arquivos selecionados nos fileuploads, enviar para o servidor, e gravar no banco o nome das imagens com suas devidas descrições.

 

Porém consigo só criar. Fazer o click e pegar fazer a codificação em cima dos nomes que dei no hora que criei, não estou conseguindo.

 

Vou colocar meu código para ver se exclareço melhor:

protected void ddlNro_SelectedIndexChanged(object sender, EventArgs e)
    {
        int nro = Convert.ToInt16(ddlNro.SelectedValue);
        for (int i=1; i <= nro; i++)
        {
            Label lbl1 = new Label();
            lbl1.Text = "<br />Foto: " + i.ToString() + "<br />";

            FileUpload fp = new FileUpload();
            fp.ID = "fu" + i.ToString();
            fp.Width = 300;

            Label lbl2 = new Label();
            lbl2.Text = "<br />Descrição: " + i.ToString() + "<br />";

            TextBox txt = new TextBox();
            txt.ID = "txtDesc" + i.ToString();
            txt.MaxLength = 250;
            txt.TextMode = TextBoxMode.MultiLine;
            txt.Width = 300;

            Label lbl3 = new Label();
            lbl3.Text = "<br /><br />";

            pnlEnviar.Controls.Add(lbl1);
            pnlEnviar.Controls.Add(fp);
            pnlEnviar.Controls.Add(lbl2);
            pnlEnviar.Controls.Add(txt);
            pnlEnviar.Controls.Add(lbl3);
            
            pnlEnviar.Height = nro * 120;
        }
        
        Button btn = new Button();
        btn.ID = "btnEnviar";
        btn.Text = "Enviar";
        btn.Click +=new EventHandler(this.btn_Click);
        pnlEnviar.Controls.Add(btn);
        pnlEnviar.Height = (nro * 120) + 50;
    }

    protected void btn_Click(object sender, EventArgs e)
    {
//AQUI NUNCA ENTRA
        this.lbl1.Text = "Clicado";
        int btnIndex = Convert.ToInt32(((Button)sender).ID.Substring(3, 1)); 
        Response.Write(btnIndex.ToString());
        ddlNro.Items.Clear();
        Label lbl = new Label();
        lbl.Text = "Clicado";
        pnlEnviar.Controls.Add(lbl);
        pnlEnviar.Height = 400;
        Response.Write("clicado");
    }

Onde era pra acontecer o clique do botão, fiz um monte de testes para ver se aparece alguma coisa na tela e nada!

 

De qualquer forma agradeço e se mais alguém souber como poderia fazer isso ficarei grata.

Marcia.

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.