Ir para conteúdo

Arquivado

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

Filipe_Moraes

Atualizar so uma div

Recommended Posts

Pessoal, o que tenho que procurar para poder aprender a atualizar somente uma div sem carregar toda a pagina novamente.

Agradecia a ajuda, eu sou novo em ASP.NET e não sei o que procurar sobre esse assunto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentanto utilizar o "UpdatePanel", mas acontce que ate agora vi exemplos em que tenho o formulario dentro do painel, queria era que uma parte do site de atulizasse clicando em um botão fora da área do painel.

 

Eu tentei colocar no meu codigo C# assim:

private void btsClick(object sender, EventArgs e){
System.Threading.Thread.Sleep(1000);
PlaceHolder1.Controls.Clear();
UserControl uc = (UserControl)LoadControl("uc_teste.ascx");
PlaceHolder1.Controls.Add(uc);
}

Acontece que ele adiciona a pagina, substitui o conteudo que la esta no updatepanel pelo usercontrol, mas quando clico no botão dessa nova pagina para chamar uma função, eu retorno ao conteudo que estava antes.

 

Segue o html:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<img src="images/imagem_central.jpg" width="580" height="320" />
</asp:PlaceHolder>
</ContentTemplate>		  
</asp:UpdatePanel>

Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, obrigado pelo seu tempo!

Acontece que não quero so fazer refresh, esta acontecendo o seguinte:

 

Tenho uma pagina "index.aspx", outra pagina "index.aspx.cs".

Na página "index.aspx" eu tenho o seguinte código com o updatePainel:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
	<ContentTemplate>
	   <asp:PlaceHolder ID="PlaceHolder1" runat="server">
		  <img src="images/imagem_central.jpg" width="580" height="320" />
	   </asp:PlaceHolder>
	</ContentTemplate>		  
</asp:UpdatePanel>

Na página "index.aspx.cs" eu tenho o seguinte código que atualiza o conteudo do updatePainel retiranto o conteudo e substituindo por um WebUserControl:

(essa função é chamada ao clicar num botão qualquer dentro da pagina index.aspx)

private void btsClick(object sender, EventArgs e){
	System.Threading.Thread.Sleep(1000);
	PlaceHolder1.Controls.Clear();
	UserControl uc = (UserControl)LoadControl("uc_teste.ascx");
	PlaceHolder1.Controls.Add(uc);
}

Pronto, esse WebUserControl que foi inserido no updatePainel é a página "uc_teste.ascx", que contem um botão e um textbox. Junto com essa pagina existe o CodeBehind "uc_teste.ascx.cs", que contem a seguinte função:

private void btTesteClick(object sender, EventArgs e){
	  this.lblTeste.Text = "isso é um teste";
}

Essa função é chamada ao clicar no botão que esta dentro da página "uc_teste.ascx", e quando isso acontecer deveria aparecer no textbox a frase "isso é um teste", de acordo com a função acima, mas o que acontece é que a página volta ao conteudo inicial, aquele que tinha antes de atualizar o updatePainel e inserir la o WebUserControl.

 

Agradeço muito a sua ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro você tomar outro caminho para atingir seu objetivo. O que está acontecendo é que quando você clica no botão do UserControl, a tela faz um refresh do seu conteúdo baseado no ViewState (campo que tem a definicao dos objetos), o que acontece é que este ViewState está desatualizado, o UserControl não está definido ali dentro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como o usercontrol está dentro de um updatePainel, não era suposto so atualizar so o painel? Estranho que quando vou ver o codigo fonte o codigo que aparece dentro do painel é o da pagina do usercontrol, mas quando vejo o design aparece o conteudo antigo, muito estranho.

Qual outro caminho? sou iniciante e não conheço outro!

 

Veja esse site de exemplo, como fazem? http://www.globaldata.pt/

Se ir ao meu lateral esquerdo, clicar em Componentes e depois uma subcategoria qualquer, o site so é actulizado no meio. Se eu clicar no nome do produto que aparece no meio ele volta a atualizar so o conteudo do meio e mostra as informações do do produto. (No que eu fiz ele volta ao conteudo inicial)

Como eles estão fazendo isso?

 

Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste site ele está usando AJAX na mão, e não o Microsoft AJAX.

Preciso entender o que você quer fazer. Uma possibilidade é habilitar e desabilitar a div usando javascript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu preciso fazer é exactamente o que esse site faz, atualizar so o conteudo do meio.

Acontece que atulizar o conteudo eu ate consigo utilizando o updatePanel, mas acontece que se inserir nesse novo conteudo um botão, ele faz postback e retorna ao conteudo original.

 

Obrigado pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, pelo que entendi você já consegue atualizar o seu usercontrol que fica no meio com o conteúdo certo.

 

Mas quero saber o que você quer dizer com adicionar um botão?

 

Eu utilizo updatePanel e funciona muito bem.

 

Quando entrei no tópico pensei que sua dúvida era atualizar uma DIV assim como um objeto. Para isso você precisa por dentro da div um runat=server

<div runat="server" id="div1"></div>
, por que assim você pode controlar através do codigo c#(servidor) e não do javascript(do cliente).

, mas acredito que não seja esse seu objetivo.

 

O que já aconteceu comigo, foi criar um updatepanel e dar erro ao clicar em um botão por causa que ele não tinha essa tag:

<asp:UpdatePanel ID="updatePanel" runat="server">
<ContentTemplate> 

//codigo html aqui

</ContentTemplate>
<Triggers>
	<asp:PostBackTrigger ControlID="MeuBotão" />
  </Triggers>  
</asp:UpdatePanel>

Esse codigo é do UserControl que eu uso. Tente dessa forma, os botões ficam dentro da tag <Triggers>.

Espero ter ajudado de alguma forma.

 

Abraço e sucesso!

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.