Array
(
)

botão não executa comando dentro do updatepanel

Saulopms
   - 30 mai 2008

sou iniciante em asp.net(c#).

criei uma página no visual studio 2005 com script manager/updatepanel. Todos os comandos e funções funcionam com ajax mas, em um botão, curiosamente está acontecendo o seguinte:

qualquer comando funciona desde que não seja javascript.Se eu colocar esse botão fora do updatepanel o javascript funciona normalmente.

segue o comando que estou utilizando:

StringBuilder aScript = new StringBuilder();
aScript.Append(´<script language=´JavaScript´>´);
aScript.Append(´window.open(´´ + ´frmpesquisa_js.aspx´ + ´´, ´´,´);
aScript.Append(´´resizable=no, menubar=no, scrollbars=yes, ´);
aScript.Append(´status=yes, left=350, top=150, width=´ + ´550´ +
´, height=´ + ´500´ + ´´)´);
aScript.Append(´</script>´);
if (!Page.ClientScript.IsClientScriptBlockRegistered(´client´))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),´cliente´, aScript.ToString());
}

esse código só funciona se o botão estiver fora do UpdatePanel.

tenho que fazer alguma configuração extra???

Hal9000
   - 01 jun 2008

Se não me engano, o único jeito é colocar um:

Scriptmanager1 .RegisterPostBackControl (´nome do controle´)

No page load fora de qualquer teste de ispostback pois ele deve executar sempre. Bom pelo menos eu sou obrigado a usar isso aqui para algumas rotinas que não fucionam diretamente. o único incoveniente é que quando vc precionar o botão ele vai fazer um postback.

Espero que ajude...

Saulopms
   - 03 jun 2008

Funcionou!

Muito obrigado.

Realmente ele tá dando um PostBack, é um pouco incômodo, mas, pelo menos funciona ;)

Se alguém tiver uma alternativa(quem sabe usar outro objeto que não seja um button) ....

Ricardo Silva
   - 03 jun 2008

utiliza esse cara
#Código

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "cliente", aScript.ToString(), false);


no lugar desse
#Código
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"cliente", aScript.ToString());


essa é a maneira certa uma vez q o scriptManenger q cuida das requisições assincronas com clinete/servidor

na duvida soh posta

Saulopms
   - 09 jun 2008

funcionou sem o postback!

vcs são d+!!!

muito obrigado ao HAL9000 e RicaJedidia.

valew

Hal9000
   - 09 jun 2008

Se não me engano, o único jeito é colocar um:

Scriptmanager1 .RegisterPostBackControl (´nome do controle´)

No page load fora de qualquer teste de Ispostback pois ele deve executar sempre. Bom pelo menos eu sou obrigado a usar isso aqui para algumas rotinas que não funcionam diretamente. o único inconveniente é que quando for pressionado o botão ele vai fazer um postback.

Espero que ajude...

Ps:Tinha que corrigir meu Post anterior. Desculpa ai gente! é Cafeina demais... Aff :?

Kchopa
   - 26 jun 2008

Evite usar Javascript, aproveite o recurso do visual studio melhor. Assim vc terá um código mais enxuto e evita futuros erros... Utiliza o C# ou Vb.

Se vc quiser ter uma aplicação mais profissional sem usar muito códigos.. visite: www.telerik.com .... Tem um componente que conquistou a microsoft