none
update panel dúvida RRS feed

  • Pergunta

  • Seguinte:

    Tenho um web form com botões e um update panel e preciso do seguinte:

    ao clicar o botão, salvar os dados e mostrar o status em uma label e limpar os controles.

    Até o salvamento dos dados está executando corretamente.

    O problema é que antes eu chamava um alert dizendo o status da operação e se caso a operação fosse com sucesso, rodaria uma procedure para limpar os controles.

    Como eu coloquei um update panel, o alert não aparece mais, porém também não consigo limpar os controles e nem inserir na label o status da operação.

    Segue meu código:

        <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true"></asp:ScriptManager>
        <asp:MultiView ID="mvw_apontamentos" runat="server">
            <asp:View ID="vw_vazia" runat="server"></asp:View>
            <asp:View ID="vw_inserir" runat="server" >
            <br />
            <asp:Button ID="btn_confirmar1" runat="server" Text="Confirmar" CssClass="button_primeiro"
                onclick="btn_confirmar_Click" />&nbsp;
            <asp:Button ID="btn_mostrar1" runat="server" Text="Mostrar" CssClass="button"
                onclick="btn_mostrar_Click" />&nbsp;
            
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btn_confirmar1" EventName="Click" />
                    <asp:AsyncPostBackTrigger ControlID="btn_mostrar1" EventName="Click" />
                </Triggers>
                <ContentTemplate>
                    <asp:Panel ID="pnl_dados1" runat="server" CssClass="caixa_panel" Width="400px" Height="210px">
                        <asp:Label ID="lbl_status" runat="server" Text=""></asp:Label>  
                        <p class="caixa_cabecalho">&nbsp;Dados</p>
                        <table class="tabela">
                            <tr>
                                <td>Cartão</td>
                                <td>
                                    <asp:TextBox ID="tbx_cartao" runat="server" Text="1" Enabled="False"></asp:TextBox>
                                    &nbsp;
                                    <asp:Label ID="lbl_cartao" runat="server" Text=""></asp:Label>
                                    </td>
                            </tr>
                            <tr>
                                <td>Data</td>
                                <td><asp:TextBox ID="tbx_data" runat="server"></asp:TextBox>                
                                    <tk:CalendarExtender ID="Xcal_data" runat="server" Enabled="True" 
                                        TargetControlID="tbx_data">
                                    </tk:CalendarExtender>
                                </td>
                            </tr>
                            <tr>
                                <td>Entrada</td>
                                <td><asp:TextBox ID="tbx_entrada" runat="server"></asp:TextBox>
                                    <tk:MaskedEditExtender ID="Xmsk_entrada" runat="server" 
                                        CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
                                        CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
                                        CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
                                        TargetControlID="tbx_entrada" Mask="99:99" MaskType="Time">
                                    </tk:MaskedEditExtender>
                                </td>
                            </tr>
                            <tr>
                                <td>Entrada Intervalo</td>
                                <td><asp:TextBox ID="tbx_entrada_intervalo" runat="server"></asp:TextBox>
                                    <tk:MaskedEditExtender ID="Xmsk_entrada_intervalo" runat="server" 
                                        CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
                                        CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
                                        CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
                                        Mask="99:99" MaskType="Time" TargetControlID="tbx_entrada_intervalo">
                                    </tk:MaskedEditExtender>
                                </td>
                            </tr>
                            <tr>
                                <td>Saida Intervalo</td>
                                <td><asp:TextBox ID="tbx_saida_intervalo" runat="server"></asp:TextBox>
                                    <tk:MaskedEditExtender ID="Xmsk_saida_intervalo" runat="server" 
                                        CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
                                        CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
                                        CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
                                        Mask="99:99" MaskType="Time" TargetControlID="tbx_saida_intervalo">
                                    </tk:MaskedEditExtender>
                                </td>
                            </tr>
                            <tr>
                                <td>Saída</td>
                                <td><asp:TextBox ID="tbx_saida" runat="server"></asp:TextBox>
                                    <tk:MaskedEditExtender ID="Xmsk_saida" runat="server" 
                                        CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
                                        CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
                                        CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
                                        Mask="99:99" MaskType="Time" TargetControlID="tbx_saida">
                                    </tk:MaskedEditExtender>
                                </td>
                            </tr>
                        </table>    
                    </asp:Panel>        
            
                    <br />
                    <div id="info">
                        <asp:GridView ID="gvw_dados" runat="server" CellPadding="4" ForeColor="#333333" 
                        GridLines="None" AllowPaging="True" 
                        onpageindexchanging="gvw_dados_PageIndexChanging" CssClass="tabela">
                        <AlternatingRowStyle BackColor="White" />
                        <EditRowStyle BackColor="#2461BF" />
                        <EmptyDataTemplate>
                            Não há dados a serem apresentados
                        </EmptyDataTemplate>
                        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                        <RowStyle BackColor="#EFF3FB" />
                        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                        <SortedAscendingCellStyle BackColor="#F5F7FB" />
                        <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                        <SortedDescendingCellStyle BackColor="#E9EBEF" />
                        <SortedDescendingHeaderStyle BackColor="#4870BE" />
                        </asp:GridView>
                    </div>        
                </ContentTemplate>       
            </asp:UpdatePanel>
        </asp:View>
            <asp:View ID="vw_alterar" runat="server"></asp:View>
        </asp:MultiView>

    Onde eu estou errando?

    Alguém pode me ajudar?

    quinta-feira, 4 de abril de 2013 16:58

Respostas

  • Fernando tenta utilizar uma msg de sucesso chamada através de javascript. para limpar os controles tenta utilizar funçoes que fazem esse trabalho. 

    Vê se este post aqui te ajuda http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/6e9a4f5b-9e52-423c-8a7d-72b7098be2b9

    update panel não deixa muitas coisas funcionar. 

    • Marcado como Resposta Fernando.Jarcen quinta-feira, 4 de abril de 2013 19:59
    quinta-feira, 4 de abril de 2013 17:09

Todas as Respostas

  • Bem provavelmente o seu alert é executado com:

    ClientScript.RegisterClientScriptBlock()

    Utilize:

    ScriptManager.RegisterClientScriptBlock()

    quinta-feira, 4 de abril de 2013 17:06
  • Fernando tenta utilizar uma msg de sucesso chamada através de javascript. para limpar os controles tenta utilizar funçoes que fazem esse trabalho. 

    Vê se este post aqui te ajuda http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/6e9a4f5b-9e52-423c-8a7d-72b7098be2b9

    update panel não deixa muitas coisas funcionar. 

    • Marcado como Resposta Fernando.Jarcen quinta-feira, 4 de abril de 2013 19:59
    quinta-feira, 4 de abril de 2013 17:09
  • Tentei implementar de duas formas mas nenhuma funcionou

    ScriptManager.RegisterStartupScript(
    this, this.GetType(), "msg", "alert('Já existe um registro com essa data!');", true);

    a página dá o seguinte erro:

    Argumento de postback ou de retorno de chamada inválido. A validação do evento é habilitada com o uso de <pages enableEventValidation="true"/> na configuração ou <%@ Page EnableEventValidation="true" %> em uma página. Por motivos de segurança, esse recurso verifica se os argumentos para eventos de postback ou de retorno de chamada se originam no controle do servidor que originalmente os processou. Se os dados forem válidos e esperados, use o método ClientScriptManager.RegisterForEventValidation para registrar os dados de postback ou de retorno de chamada para validação.

    já tentei colocar na webconfig porém o gridview deixa de fazer a paginação.

    quinta-feira, 4 de abril de 2013 19:10
  • eu consegui resolver mudando o pageEnableEventValidation para false.

    Os alerts estão funcionando corretamente. 

    obrigado amigos.

    quinta-feira, 4 de abril de 2013 19:59