none
Problema con Boton enable y Update panel RRS feed

  • Pregunta

  • Buen día Foro, tengo un form que contiene un radiobuttom, textbox, calender, gridview y un boton.

    De acuerdo a la eleccion del radiobuttom y luego de seleccionar un rows en el gridview, habilito o no el boton.

    Todo funciona ok. pero al agregar un updatepanel y un updateprogress que contiene el calendar y el gridview me funciona perfecto el loading mientras proceso la consulta....Pero surje el problema que no me habilita el boton.

    Como debería solucionarlo. Nunca use updatepanel.

    Les copio el codigo por si ayuda.

    aspx

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
                                                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                                                     <ContentTemplate>
                                                 
                                                      <table align="left" class="auto-style5">
                                                        <tr>
                                                            <td class="auto-style16" align="left" rowspan="2">
                                                                
                                                                <asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#999999" CellPadding="4" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" Height="214px" TabIndex="18" Width="284px">
                                                                    <DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
                                                                    <NextPrevStyle VerticalAlign="Bottom" />
                                                                    <OtherMonthDayStyle ForeColor="#808080" />
                                                                    <SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
                                                                    <SelectorStyle BackColor="#CCCCCC" />
                                                                    <TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
                                                                    <TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
                                                                    <WeekendDayStyle BackColor="#FFFFCC" />
                                                                </asp:Calendar>
                                                                       
                                                            </td>
                                                            <td class="auto-style97" valign="top">
                                                                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="0px" CellPadding="4" DataKeyNames="IdRango" DataSourceID="SqlDataSourceRangos" ForeColor="Black" GridLines="None" HorizontalAlign="Center" TabIndex="19" Visible="False" Width="189px">
                                                                    <AlternatingRowStyle BackColor="White" />
                                                                    <Columns>
                                                                        <asp:BoundField DataField="IdRango" HeaderText="IdRango" Visible="False" />
                                                                        <asp:BoundField DataField="Rango" HeaderText="Horarios">
                                                                        <HeaderStyle BackColor="#999999" Font-Names="Verdana" Font-Size="9pt" Font-Strikeout="False" ForeColor="#333333" />
                                                                        <ItemStyle Font-Names="verdana" Font-Size="8pt" HorizontalAlign="Left" />
                                                                        </asp:BoundField>
                                                                        <asp:CommandField HeaderText="Disponibles" SelectText="seleccionar" ShowSelectButton="True">
                                                                        <HeaderStyle BackColor="#999999" Font-Names="verdana" Font-Size="9pt" ForeColor="#333333" />
                                                                        <ItemStyle Font-Names="verdana" Font-Size="8pt" />
                                                                        </asp:CommandField>
                                                                    </Columns>
                                                                    <FooterStyle BackColor="#CCCC99" />
                                                                    <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
                                                                    <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
                                                                    <RowStyle BackColor="#F7F7DE" />
                                                                    <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
                                                                    <SortedAscendingCellStyle BackColor="#FBFBF2" />
                                                                    <SortedAscendingHeaderStyle BackColor="#848384" />
                                                                    <SortedDescendingCellStyle BackColor="#EAEAD3" />
                                                                    <SortedDescendingHeaderStyle BackColor="#575357" />
                                                                </asp:GridView>
                                                       </td>
                                                        </tr>
                                                          <tr>
                                                              <td class="auto-style18" valign="top">
                                                                  <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                                                                       <ProgressTemplate>
                <div class="overlay" />
                <div class="overlayContent">
                    <h2 class="textloading">procesando datos<br />
                        <img src="Imagenes/loadingg.gif" alt="Loading" border="0" style="height: 43px; width: 47px" />
                    </h2>
                    &nbsp;</div>
            </ProgressTemplate>
                                                                  </asp:UpdateProgress>
                                                              </td>
                                                          </tr>
                                                    </table>
                                                      </ContentTemplate>
        </asp:UpdatePanel>            

    vb

      Protected Sub Calendar1_DayRender(sender As Object, e As DayRenderEventArgs) Handles Calendar1.DayRender

            Try

                Dim vHoy As String = String.Format("{0:M/d/yyyy}", Now())

                Dim Sql As String = " select count(*) as cant " & _
                                    " from TENVIOS " & _
                                    " where Fecha = ?Dia " & _
                                    " and TipoEnvio=?TipoEnvio "

                conMyData = funcion.connect()

                Dim oComando As New MySqlCommand(Sql, conMyData)

                oComando.Parameters.AddWithValue("?TipoEnvio", Me.TipoEnvio.SelectedValue)
                oComando.Parameters.AddWithValue("?Dia", e.Day.Date)

                Dim myreader As MySqlDataReader = oComando.ExecuteReader

                Do While myreader.Read()

                    If myreader("cant") = Session("vCantAsig") Then

                        e.Cell.BackColor = Drawing.Color.Red
                        e.Day.IsSelectable = False

                    Else

                        If e.Day.Date.DayOfWeek = DayOfWeek.Saturday Or e.Day.Date.DayOfWeek = DayOfWeek.Sunday Or e.Day.Date < Date.Today Then

                            e.Day.IsSelectable = False

                        Else

                            e.Cell.BackColor = Drawing.Color.LightGreen

                        End If

                        If e.Day.IsToday Then

                            e.Cell.BackColor = Drawing.Color.Yellow
                            e.Day.IsSelectable = False

                        End If

                    End If

                Loop

                conMyData.Close()
                conMyData.Dispose()
                conMyData = Nothing

                If e.Day.Date > vHoy Then

                    'Feriados
                    conMyData = funcion.connect()

                    Dim Sql2 As String = " SELECT Fecha " & _
                                         " FROM Tferiados "

                    Dim oComando2 As New MySqlCommand(Sql2, conMyData)

                    Dim myreader2 As MySqlDataReader = oComando2.ExecuteReader()

                    Do While myreader2.Read()

                        If e.Day.Date = myreader2("Fecha") Then

                            e.Cell.BackColor = Drawing.Color.Violet
                            e.Day.IsSelectable = False

                        End If

                    Loop

                    conMyData.Close()
                    conMyData.Dispose()
                    conMyData = Nothing

                End If


            Catch ex As Exception

                Response.Write(ex.Message)
                Response.Write(ex.Source)
                Response.Write("Fallo conexion")

            End Try

        End Sub

     Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged

            Me.Boton.enable="true"

        End Sub
       

    martes, 3 de noviembre de 2015 12:16

Respuestas

  • Buenas noches, les comento que lo pude solucionar con esto en un 80%, porque me quedo algo que no está del todo bien, pero safa.

    <asp:UpdatePanel> <Triggers> <asp:AsyncPostBackTrigger ControlID="myAsyncControl" /> <asp:PostBackTrigger ControlID="myPostbackControl" /> </Triggers> <ContentTemplate> my content </ContentTemplate> </asp:UpdatePanel>

    Abrazo.-

    • Marcado como respuesta jumafeit jueves, 5 de noviembre de 2015 0:00
    miércoles, 4 de noviembre de 2015 23:59

Todas las respuestas

  • se duplico la pregunta

    Problema con Boton enable y Update panel



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 3 de noviembre de 2015 13:14
  • Si me dio error al publicarla..
    martes, 3 de noviembre de 2015 13:38
  • hola jumafeit,

    Intenta cambiar el evento SelectIndexChanged por SelectedIndexChanging. Al parecer es un problema con el momento en que el GirView cambia durante el ciclo de vida de la página.

    Inténtalo y nos dices si ha funcionado.

    Saludos,

    @norrojas

    martes, 3 de noviembre de 2015 15:25
  • Gracias, llego a casa por la tarde y lo pruebo.. no se cual es la diferencia del evento, pero lo pruebo..

    cuando hago la prueba veo que si pasa la ejecucion por el evento SelectIndexChanged y asigna true al boton, pero luego al terminar queda en false.

    Esto me pasó al poner el update panel.

    El boton está fuera del updatepanel, esto esta bien que sea asi?

    El tema es que necesito el boton para todo el form y no solo para las acciones del calendar o grid porque estos estan ocultos de acuerdo a lo seleccionado en el RadioButtom.

    martes, 3 de noviembre de 2015 16:29
  • Buenas noches, les comento que lo pude solucionar con esto en un 80%, porque me quedo algo que no está del todo bien, pero safa.

    <asp:UpdatePanel> <Triggers> <asp:AsyncPostBackTrigger ControlID="myAsyncControl" /> <asp:PostBackTrigger ControlID="myPostbackControl" /> </Triggers> <ContentTemplate> my content </ContentTemplate> </asp:UpdatePanel>

    Abrazo.-

    • Marcado como respuesta jumafeit jueves, 5 de noviembre de 2015 0:00
    miércoles, 4 de noviembre de 2015 23:59