zyle Posted August 5, 2008 at 08:58 PM Report #203233 Posted August 5, 2008 at 08:58 PM Boas pessoal, 😄 tenho um formulário na minha pagina que carrega os dados do cliente no page_load para os respectivos campos, para o cliente poder editar os seus dados...mas quando faxu o evento clique do botao com o respectivo codigo update..a pagina guarda os dados antigos!?? tipo faz o post back e carrega novamente os dados para as caixas de texto, e so depois faz o update =S como posso resolver isto...
vitortomaz Posted August 5, 2008 at 09:04 PM Report #203235 Posted August 5, 2008 at 09:04 PM "faxu" não sei o que é 😄 já leste a revista deste mês? lool mas o código do update está no evento de click do botão não está? porque é que dizes que só faz update depois? http://vitortomaz.blogspot.com/
DanielAmorim Posted August 5, 2008 at 09:58 PM Report #203243 Posted August 5, 2008 at 09:58 PM Só não entendi a parte de depois fazer o Update... 😄 No ciclo de vida de uma página ASP.Net tens os seguintes eventos serializados: - PreInit - Init - InitComplete - PreLoad - Load - <Control Events > - LoadComplete - PreRender - SaveStateComplete - Render - Unload Coloquei a negrito os que interessam para a conversa: Load: "The Page calls the OnLoad event method on the Page, then recursively does the same for each child control, which does the same for each of its child controls until the page and all controls are loaded. Use the OnLoad event method to set properties in controls and establish database connections." <Control Events >: "Use these events to handle specific control events, such as a Button control's Click event or a TextBox control's TextChanged event." Informação retirada do MSDN: http://msdn.microsoft.com/en-us/library/ms178472.aspx Agora aplicando esta teoria ao teu casa. Quando fazes o pedido (GET) da página no evento Load é preenchido o formulário e a página é enviada para o cliente. Depois do cliente alterar o formulário e premir o botão é feito um novo pedido (POST) ao servidor de modo a actualizar os dados. Como os valores do elementos de formulário são enviados, no corpo do pedido, no servidor terás acesso a eles depois da página e seus controlos serem carregados. Mas como no evento de Load (invocado em todos os pedidos!) estás a preencher o formulário estragas os valores introduzidos pelo utilizador. Assim quando corre o evento de Click, na parte do Control Events, vais ler os valores entretanto alterados e não os que o utilizador preencheu. Como se pode evitar isto? Não preenchendo o formulário quando o pedido é do tipo POST. Pode fazer qualquer coisa assim: protected void Page_Load(object sender, EventArgs e) { if(!Page.IsPostBack) { //Preencher o formulário! } } Espero ter ajudado a corrigir o erro e acima de tudo a perceberes o porque deste estar a acontecer 😄 Qualquer duvida chuta 😄 Daniel Amorim VP for xRTML http://www.xrtml.org http://www.realtime.co
zyle Posted August 6, 2008 at 02:47 PM Author Report #203370 Posted August 6, 2008 at 02:47 PM Obrigado pela ajuda 😄 desculpem a minha explicação, não foi das melhores 😄 quando me referi a update era ao codigo update em sql (UPDATE SET..)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now