Inquiridor
pegar valor textbox dinamico

Pergunta
-
Olá,
Eu tenho um datalist que está exibindo alguns textos.
Estou criando um botão em tempo de execução, onde ao ser clicado está criando um textbox com o texto que está sendo exibido no datalist. Isso tudo no mesmo campo do datalist. Estou criando dentro de um Panel.
A ideia é que eu possa editar esse texto. Quando clico no botão para atualizar, após ter feito as minhas alterações no texto, eu precisaria pegar esse texto para poder fazer a persistência no banco.
O problema é que como tudo está sendo criado dinamicamente, ao clicar no botão de atualizar ele passa primeiramente pelo pageload onde se encontra a minha lógica onde crio os controles, recriando tudo e perdendo assim o que foi digitado e alterado antes de passar pelo meu updateCommand.
Alguém poderia me ajudar?
Todas as Respostas
-
Diogo,
Coloca a sua lógica de criar os controles quando a página for executada para primeira vez.. para isso vc suaria o
if (!IsPostBack) { //Sua Logica }
Mas para que possamos te ajudar melhor, poste seu código.. A cada postback o botao é recriado ? Sempre?
-
Olá Gustavo,
Então, com quero manter os botoes na página a lógica fica fora do (!IsPostBack).
if (!Page.IsPostBack) { ... } CriaOsBotoesDeEdicao(); ... protected void MeuDatalist_EditCommand(...) { //aqui ele insere os textbox e também cria um botao para atualizar. } protected void MeuDatalist_UpdateCommand(...) { //Aqui era para ele fazer a persistência, mas os valores ja foram perdidos por que passou pelo pageload. } ...
Aqui da para ter uma ideia da minha lógica.
Mais alguma sugestão?
- Editado Diogo_Costa quarta-feira, 30 de maio de 2012 18:32
-
Olá Diogo!
Você precisa dar uma olhada sobre o "Ciclo de vida das páginas aspx".
Para manipular esse tipo de coisa, salvo o engano, você precisará escrever no Page_PreInit.
Ciclo de vida: http://msdn.microsoft.com/pt-br/library/ms178472(v=vs.90).aspx
Mais especificamente sobre sua dúvida: http://social.msdn.microsoft.com/Forums/pt/aspnetpt/thread/22fb2169-d393-41b2-ad3f-66d02d1d59d6
-
-
-
-
-
Diogo no aspx vc delcara <input id="nome" type="hidden" runat="sever" />
no codebehind vc pega o que vc quer guardar tipo um textbox ou uma variável
hidden.value = textbox.text;
Eu faço assim qdo quero guardar um valor de uma variável, após um postback.
Junior
-
-
Para resolução destes problemas eu recorro sempre ao Request.Forms. Lá você consegue obter o valor pelo id que foi gerado dinamicamente para o controle.
Luís Fernando Vendrame
- Sugerido como Resposta Anselmo Luiz Schaefler sexta-feira, 1 de junho de 2012 19:39