Foros del Web » Programación para mayores de 30 ;) » .NET »

Evitar postback en linkbutton

Estas en el tema de Evitar postback en linkbutton en el foro de .NET en Foros del Web. Hola a todos! A ver si me podéis ayudar porque por más códigos de ejemplo que miro no consigo que me funcionen en mi código ...
  #1 (permalink)  
Antiguo 25/10/2014, 10:35
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Evitar postback en linkbutton

Hola a todos! A ver si me podéis ayudar porque por más códigos de ejemplo que miro no consigo que me funcionen en mi código y no sé que estoy haciendo mal.

La cuestión es que tengo una acción que es la que me está dando guerra, la acción de editar. Sólo quiero que realmente se produzca cuando el usuario haya seleccionado un único checkbox. Para saber el número de seleccionados tengo una función "devuelveSeleccionados" a la que llamo desde el evento CheckedChanged y en función del resultado intento o no permitir la ejecución del servicio.

He estado haciendo varias pruebas y ahora en el evento checked_changed del checkbox tengo lo siguiente:
He probado con onclick y con onclientclik pero nada.

Protected Sub chkSelec_CheckedChanged(sender As Object, e As EventArgs)

Dim mCheck As CheckBox = CType(sender, CheckBox)
Dim mSeleccionados As List(Of String) = devuelveSeleccionados(mCheck.Parent.Parent.Parent. Parent)
If mSeleccionados.Count > 1 Or mSeleccionados.Count = 0 Then
linkEditar.Attributes.Add("OnClientClick", "algo()")
'linkEditar.Attributes.Add("onclick", "alert('Desactivado'); return false;")
End If
End Sub

En la pag aspx tengo implementada la función en javascript "algo()" que siempre devuelve false
function algo() {
return false;
}

El linkbutton lo tengo definido así:

Código HTML:
<li>
						<%--ActionItem: 'EDITAR'--%>
						<asp:LinkButton ID="linkEditar" Text="Modificar" OnClick="linkEditar_Click" runat="server" ></asp:LinkButton>
					</li> 
Cuando miro en el navegador el código, no me aparece ninguna función adicional que haga referencia a lo implementado por lo que se produce el postback


Código HTML:
<li>
<a id="ContentPlaceHolder1_linkEditar" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$linkEditar','')">Modificar</a>
</li> 
No se como controlarlo, siempre que hago clic en el link hace el postback.

Os comento también que el checkbox lo tengo dentro de un gridview y este dentro de un updatepanel.

A ver si me podéis iluminar.

Gracias
  #2 (permalink)  
Antiguo 25/10/2014, 13:59
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 4 meses
Puntos: 401
Respuesta: Evitar postback en linkbutton

Mira por aqui.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 26/10/2014, 03:33
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Evitar postback en linkbutton

Hola Lauser,
Lo cierto es que de esa y muchas otras páginas saqué la idea para implementar mi código.
La única diferencia es que ahí agrega esa propiedad en el momento en que se carga la página.
He modificado mi código para que por defecto el linkbutton no haga postback y unicamente permita hacerlo cuando se haga click en el checkbox.
Bueno, pues ahora tengo el problema al revés, el botón ya nunca responde, parece que el linkbutton no se entera de que le modifican o agregan alguna propiedad a no ser que sea en el momento de cargarse la página ¿esto funciona así?

El código tal cual lo tengo ahora

Código:
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            linkEditar.Attributes.Add("onClick", "return false;")
            fillGrid(sqlBase)
        End If
    End Sub


Código:
    Protected Sub chkSelec_CheckedChanged(sender As Object, e As EventArgs)

        Dim mCheck As CheckBox = CType(sender, CheckBox)
        Dim mSeleccionados As List(Of String) = devuelveSeleccionados(mCheck.Parent.Parent.Parent.Parent)
        If mSeleccionados.Count = 1 Then
            linkEditar.Attributes("onClick") = "return true;"
        End If
    End Sub
De este cambio no hace caso, ¿me falta algo para refrescar?

Gracias de nuevo

Etiquetas: evento, linkbutton, postback
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:58.