Usuário com melhor resposta
executar postback para chamar rotina do botão

Pergunta
-
bom dia,pessoal preciso de uma ajuda como faço para executar um um botao dentro de um UpdatePanel pois esta acontecendo o seguinte problema o codigo abaixo abre uma tela modal como um loading.. informando ao usuario para aguardar ,mas meu codigo de update não esta sendo executado .segue um exemplo que fiz a tela modal entra e mostra mensagem se meu btnexecutar estiver dentro do updatepanel mas se tiver fora não executa .ao contrario se eu deixar ele de fora eu executo o alerta mas não a tela modal .a ideia seria mostrar a tela modal enquanto não sair do for ,apos fechar a tela modal e dar alerta
aspx:
<asp:ImageButton ID="btnexecutar" runat="server" ImageUrl="~/Imagens/executar.PNG"
OnClick="btnexecutar_click" />
<asp:ScriptManager ID="Scriptmanager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<asp:UpdateProgress runat="server" ID="UpdateProgress1">
<ProgressTemplate>
<div id="progressBackgroundFilter" runat="server" visible="true">
</div>
<asp:Button ID="Button2" runat="server" Text="[Mostrar]" OnClick="Button2_Click" />
<div id="Div1" class="Div_Modal" runat="server">
<p style="text-align: center; background-color: #FFF; height: 400px; font-size: 20px;
width: 100%; border: 1px solid #000; margin: -12% 0 0 0; position: absolute">
Atualizando Dados Aguarde ...
<br />
<asp:Image runat="server" ID="LOAD" ImageUrl="~/Imagens/Load.gif" Width="12%" BorderColor="Black" /><br />
</p>
<br />
<%-- <a href="#" onclick="document.getElementById('Div1').style.display='none';">[Fechar]</a>--%>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
code behind:
protected void Button2_Click(object sender, EventArgs e)
{
Int32 tempo = 10000;
System.Threading.Thread.Sleep(tempo);
}protected void btnexecutar_click(object sender, EventArgs e)
{
StringBuilder ins = new StringBuilder();
//VERIFICO SE FOI SELECIONADO ALGUM ITEM OU NÃO
//2012/05/18
// ALEXANDRE
if (Convert.ToInt16(ddltomaracao.SelectedIndex) == 0)
{
JSAlert("Nemhuma Ação Selecionada!!");
}}
Respostas
-
Bom dia,
Você viu que foi incluído um Thread.Sleep para você conseguir visualizar o progressbar, certo?!
Você esperou o tempo para ver se o alerta era exibido?
Comente as linhas abaixo do btnexecutar_click e tente novamente:
Int32 tempo = 10000; System.Threading.Thread.Sleep(tempo);
Carlos Eduardo Ferreira
- Marcado como Resposta Alexandre Carvalho Marques quarta-feira, 30 de maio de 2012 11:49
Todas as Respostas
-
Amigo,
Tente isso:
ASPX:
<asp:ScriptManager ID="Scriptmanager1" runat="server" /> <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:ImageButton ID="btnexecutar" runat="server" ImageUrl="~/Imagens/executar.PNG" OnClick="btnexecutar_click" /> <asp:UpdateProgress runat="server" ID="UpdateProgress1" AssociatedUpdatePanelID="UpdatePanel3"> <ProgressTemplate> <div id="progressBackgroundFilter" runat="server" visible="true"> </div> <asp:Button ID="Button2" runat="server" Text="[Mostrar]" OnClick="Button2_Click" /> <div id="Div1" class="Div_Modal" runat="server"> <p style="text-align: center; background-color: #FFF; height: 400px; font-size: 20px; width: 100%; border: 1px solid #000; margin: -12% 0 0 0; position: absolute"> Atualizando Dados Aguarde ... <br /> <asp:Image runat="server" ID="LOAD" ImageUrl="~/Imagens/Load.gif" Width="12%" BorderColor="Black" /><br /> </p> <br /> <%-- <a href="#" onclick="document.getElementById('Div1').style.display='none';">[Fechar]</a>--%> </div> </ProgressTemplate> </asp:UpdateProgress> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="btnexecutar" /> </Triggers> </asp:UpdatePanel>
CodeBehind:
protected void Button2_Click(object sender, EventArgs e) { Int32 tempo = 10000; System.Threading.Thread.Sleep(tempo); } protected void btnexecutar_click(object sender, EventArgs e) { Int32 tempo = 10000; System.Threading.Thread.Sleep(tempo); //StringBuilder ins = new StringBuilder(); //VERIFICO SE FOI SELECIONADO ALGUM ITEM OU NÃO //2012/05/18 // ALEXANDRE if (Convert.ToInt16(ddltomaracao.SelectedIndex) == 0) { JSAlert("Nemhuma Ação Selecionada!!"); } }
Carlos Eduardo Ferreira
-
-
Bom dia,
Você viu que foi incluído um Thread.Sleep para você conseguir visualizar o progressbar, certo?!
Você esperou o tempo para ver se o alerta era exibido?
Comente as linhas abaixo do btnexecutar_click e tente novamente:
Int32 tempo = 10000; System.Threading.Thread.Sleep(tempo);
Carlos Eduardo Ferreira
- Marcado como Resposta Alexandre Carvalho Marques quarta-feira, 30 de maio de 2012 11:49
-
bom dia valeu pela ajuda ,consegui resolver da seguinte forma criei 2 div uma para fundo e outra onde coloquei o gif depois via javascript que executa tudo do lado do Client eu mostro as divs ai depois o que esta dentro o click do meu botão testei e funfo