none
Problema com updatePanel RRS feed

  • Pergunta

  • Olá pessoal, estou com o seguinte cenário.

    tenho um dropdownlist, e um botao dentro de updatepanel.

    tenho um try catch no evento click do botao.

    se nao tiver nenhum item selecionado no dropdownlist.

    ele gera uma exception. onde capturo e coloco a msg em um label.

    Meu problema é: toda vez que acontece a exceção, não consigo selecionar os itens do dropdownlist com mouse.

    só consigo percorrer os itens passando na "SETA" do teclado.

    depois de uns 10 segundos é que consigo listar pelo mouse.

    Não sei se tem algo a ver em eu ter gerado uma exceção. Mas espero que alguem possa me ajudar.

    quinta-feira, 6 de novembro de 2008 19:38

Respostas

  • resolvi este problema da seguinte maneira

    Public Shared Sub EncapsulaErrosAsync(ByVal ObjectPage As System.Web.UI.Page)

                Dim oScript As New System.Text.StringBuilder

                With oScript

                    .Append("function endRequest(sender, endRequestEventArgs) {")
                    .Append("   var error = endRequestEventArgs.get_error();")
                    .Append("   if(error !== null) {")
                    .Append("       alert(error.description);")
                    .Append("       endRequestEventArgs.set_errorHandled(true);")
                    .Append("   }")
                    .Append("}")

                End With

                ObjectPage.ClientScript.RegisterStartupScript(GetType(String), New Guid().ToString, oScript.ToString, True)

            End Sub

    Todas as exeptions assíncronas será responsabilidade desta funcao javascript.
    terça-feira, 2 de dezembro de 2008 18:04

Todas as Respostas

  • Olá Belinni,

     

    Você diz que quando ocorre uma Exception a sua dropdowlist fica inacessivel ao mouse é isso?

    Essa Exception é gerada pelo simples fato de não ter selecionado nada no DropDownList?

    Você não poderia usar um validator do tipo RequiredFieldValidator no lugar da Exception?

    Existe muito mais código a ser executado no CATCH além da msg do label?

    O UpdatePanel está conditional ou always?

     

    Se puder responder essas perguntinhas acredito que será mais facil de chegar a uma solução.

     

     

     

    quarta-feira, 12 de novembro de 2008 13:51
  •  Marcio Gomes wrote:

    Olá Belinni,

     

    Você diz que quando ocorre uma Exception a sua dropdowlist fica inacessivel ao mouse é isso?

    Essa Exception é gerada pelo simples fato de não ter selecionado nada no DropDownList?

    Você não poderia usar um validator do tipo RequiredFieldValidator no lugar da Exception?

    Existe muito mais código a ser executado no CATCH além da msg do label?

    O UpdatePanel está conditional ou always?

     

    Se puder responder essas perguntinhas acredito que será mais facil de chegar a uma solução.

     

     

     



    Meu behind


    Partial Class _Default
        Inherits System.Web.UI.Page

        Private Sub InicializarForm()

            PreencherCombo()

        End Sub

        Private Sub PreencherCombo()

            With ddlCombo

                .Items.Add(New ListItem("texto 1", "0"))
                .Items.Add(New ListItem("texto 2", "1"))
                .Items.Add(New ListItem("texto 3", "2"))

                .SelectedIndex = -1

            End With

        End Sub

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            If Not IsPostBack Then

                InicializarForm()

            End If

        End Sub

        Protected Sub btnGravar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGravar.Click

            Try

                Throw New Exception("Gerei um Erro")

            Catch ex As Exception

                ShowMsg(Me.Page, ex.Message)

            End Try

        End Sub

        Public Shared Sub ShowMsg(ByVal ObjectPage As System.Web.UI.Page, ByVal Message As String)

            ScriptManager.RegisterStartupScript(ObjectPage, GetType(String), New Guid().ToString, "alert('" & Message & "');", True)

        End Sub

    End Class


    MEU aspx

    <body>
        <form id="form1" runat="server">
            <aspTongue TiedcriptManager ID="ScriptManager1" runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <table border="0" cellpadding="2" cellspacing="2" style="width: 100%">
                        <tr>
                            <td>
                                <aspBig SmileropDownList ID="ddlCombo" runat="server" Width="400px">
                                </aspBig SmileropDownList></td>
                        </tr>
                        <tr>
                            <td>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Button ID="btnGravar" runat="server" Text="Gerar Erro" /></td>
                        </tr>
                    </table>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
                <ProgressTemplate>
                    asdfadf
                </ProgressTemplate>
            </asp:UpdateProgress>
        </form>
    </body>
    quinta-feira, 13 de novembro de 2008 14:34
  •  Marcio Gomes wrote:

    Olá Belinni,

     

    Você diz que quando ocorre uma Exception a sua dropdowlist fica inacessivel ao mouse é isso?

    Essa Exception é gerada pelo simples fato de não ter selecionado nada no DropDownList?

    Você não poderia usar um validator do tipo RequiredFieldValidator no lugar da Exception?

    Existe muito mais código a ser executado no CATCH além da msg do label?

    O UpdatePanel está conditional ou always?

     

    Se puder responder essas perguntinhas acredito que será mais facil de chegar a uma solução.

     

     

     



    Lembrando que este problema ocorre apenas no Firefox.

    Constatei pelo menos no IE7 o combo funciona.
    quinta-feira, 13 de novembro de 2008 14:36
  • resolvi este problema da seguinte maneira

    Public Shared Sub EncapsulaErrosAsync(ByVal ObjectPage As System.Web.UI.Page)

                Dim oScript As New System.Text.StringBuilder

                With oScript

                    .Append("function endRequest(sender, endRequestEventArgs) {")
                    .Append("   var error = endRequestEventArgs.get_error();")
                    .Append("   if(error !== null) {")
                    .Append("       alert(error.description);")
                    .Append("       endRequestEventArgs.set_errorHandled(true);")
                    .Append("   }")
                    .Append("}")

                End With

                ObjectPage.ClientScript.RegisterStartupScript(GetType(String), New Guid().ToString, oScript.ToString, True)

            End Sub

    Todas as exeptions assíncronas será responsabilidade desta funcao javascript.
    terça-feira, 2 de dezembro de 2008 18:04