none
executar postback para chamar rotina do botão RRS feed

  • 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!!");
               }

    }

                                                 
    quinta-feira, 24 de maio de 2012 14:23

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

    sexta-feira, 25 de maio de 2012 12:12

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

    quinta-feira, 24 de maio de 2012 19:25
  • bom dia fiz desta forma mas mesmo problema somente apresenta a tela de loading ,mas o codigo de update ou seja como no exemplo a mensagem de alerta não é apresentada você tem alguma ideia do que possa ser
    sexta-feira, 25 de maio de 2012 12:04
  • 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

    sexta-feira, 25 de maio de 2012 12:12
  • 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
    quarta-feira, 30 de maio de 2012 11:48