Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] llamar método mediante javascript

Estas en el tema de llamar método mediante javascript en el foro de ASPX (.net) en Foros del Web. buenas, estoy empezando a utilizar asp y tengo mucho por aprender, actualmente estoy haciendo una aplicacion online y me quede con unos problemas a la ...
  #1 (permalink)  
Antiguo 16/11/2014, 00:14
 
Fecha de Ingreso: noviembre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta llamar método mediante javascript

buenas, estoy empezando a utilizar asp y tengo mucho por aprender, actualmente estoy haciendo una aplicacion online y me quede con unos problemas a la hora de mostrar mensajes para lo cual utilizo javascript, y es q kiero hacer lo siguiente:
Elimino una materia y cuando se completa el proceso muestro una alerta, luego si no se puede eliminar, muestro otro mensaje de confirmacion para continuar con la deshabilitacion de la materia, pero al momento d presionar en "aceptar" del mensaje de confirmacion no realiza la accion de llamar al metodo de desabilitar.
Adjunto parte del codigo q estoy utilizando.
pagina:
<script type="text/jscript">
function confirmarEliMate() {
var seleccion = confirm("No se pudo eliminar la materia, esto se debe a que la materia se está dictando actualmente o ya se dictó. De todas formas, ¿Desea deshabilitar esta materia?");
if (seleccion) {
var objBoton = document.getElementById("ButtonMatDes");
if (objBoton) {
objBoton.click();
}
}
}
</script>
codigo c#:
protected void ButtonMatEli_Click(object sender, EventArgs e)
{
ControladorMateria ControMater = new ControladorMateria();
if (ControMater.Eliminar(TextBoxMatID.Text))
{
string script = @"<script type='text/javascript'>
alert('Se ha eliminado la materia seleccionada');
</script>";
ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
}
else
{
string script = @"<script type='text/javascript'>
confirmarEliMate();
</script>";
ScriptManager.RegisterStartupScript(this, typeof(Page), "confirmarEliMate", script, false);
}
Lista_MateriasH();
}
protected void ButtonMatDes_Click(object sender, EventArgs e)
{
..............
}

Agradeceria cualquier ayuda, Gracias.
  #2 (permalink)  
Antiguo 18/11/2014, 15:18
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: llamar método mediante javascript

Buenas compañero,

Está resuelto ya?
Sino... Pon parte del código asp, pues creo que ahí es donde estará el problema... seguramente en el UpdatePanel tendrás que agregar a ese botón como trigger o alguna cosa por el estilo...
Y plis, usa las etiquetas [ code ] para el código, así no sale tan "feo", entre que soy de vb y que está de aquella forma a la hora de visualizarlo... Me pierdo en las llaves!


Un saludo!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #3 (permalink)  
Antiguo 18/11/2014, 16:05
 
Fecha de Ingreso: noviembre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: llamar método mediante javascript

gracias por responder @Drako_18, lastimosamente aun no pude resolverlo, audjunto el codigo q me indicas
pagina aspx
Código:
<script type="text/jscript">
        function confirmarEliMate() {
            var seleccion = confirm("No se pudo eliminar la materia, esto se debe a que la materia se está dictando actualmente o ya se dictó. De todas formas, ¿Desea deshabilitar esta materia?");
            if (seleccion) {
                var objBoton = document.getElementById("ButtonMatDes");
                if (objBoton) {
                    objBoton.click();
                }
            }
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanelMateria" runat="server">
    <ContentTemplate>
<asp:Panel ID="CabeceraPanelMateria" runat="server" style="cursor: pointer;">
        <div class="Cabecera">
            <asp:ImageButton ID="ImagenFlecha1" runat="server" ImageUrl="~/Imagen/collapse.jpg" AlternateText="collapse" />
            Administrar las materias
        </div>
    </asp:Panel>
    <asp:Panel id="ContenidoPanelMateria" runat="server" style="overflow:hidden;">
<asp:Button ID="ButtonMatEli" runat="server" Text="Eliminar" onclick="ButtonMatEli_Click" />
        <asp:Button ID="ButtonMatDes" runat="server" Text="Deshabilitar" onclick="ButtonMatDes_Click" /></asp:Panel>
</ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="ButtonMatEli" EventName="Click" />
            <asp:AsyncPostBackTrigger ControlID="ButtonMatDes" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>
y el codigo c# es:

Código:
protected void Page_Load(object sender, EventArgs e)
    {
        ButtonMatEli.Attributes.Add("onclick", "return confirm('Presione Aceptar si esta seguro de eliminar la materia');"); 
    }
protected void ButtonMatEli_Click(object sender, EventArgs e)
    {
        ControladorMateria ControMater = new ControladorMateria();
        if (ControMater.Eliminar(TextBoxMatID.Text))
        {
            string script = @"<script type='text/javascript'> 
                alert('Se ha eliminado la materia seleccionada.');
                </script>";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
        }
        else
        {
            string script = @"<script type='text/javascript'>
                                confirmarEliMate();
                            </script>";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "confirmarEliMate", script, false);
        }
        Lista_MateriasH();
    }
protected void ButtonMatDes_Click(object sender, EventArgs e)
    {
    }
  #4 (permalink)  
Antiguo 19/11/2014, 01:49
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: llamar método mediante javascript

Buenas compañero,

Si quieres utilizar el ID de un objeto ASP desde JavaScript, como es el caso, ese objeto deberá tener la siguiente propiedad de esta forma:
<asp:Button ID="ButtonMatDes" runat="server" Text="Deshabilitar" onclick="ButtonMatDes_Click" ClientIDMode="Static" />

Si no le indicas eso, el IdClient del objeto será del tipo... crt$ContenidoPanelMateria_ButtonMatDes.

Por cierto, si quieres asegurarte, puedes poner en el código JS lo siguiente (depurar código JS):
Código:
function confirmarEliMate() {
            var seleccion = confirm("No se pudo eliminar la materia, esto se debe a que la materia se está dictando actualmente o ya se dictó. De todas formas, ¿Desea deshabilitar esta materia?");
            if (seleccion) {
                var objBoton = document.getElementById("ButtonMatDes");
                debugger;
                if (objBoton) {
                    objBoton.click();
                }
            }
        }

Un saludo!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #5 (permalink)  
Antiguo 19/11/2014, 14:13
 
Fecha de Ingreso: noviembre-2014
Mensajes: 6
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: llamar método mediante javascript

@Drako_18 muchas gracias, ClientIDMode="Static" era lo que me faltaba y lo del Debugger; no me lo sabia, muchas pero muchas gracias.
  #6 (permalink)  
Antiguo 19/11/2014, 14:21
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: llamar método mediante javascript

Me alegro que te haya servido, para echarnos una manita estamos... jejeje

Un saludo!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)

Etiquetas: asp, javascript, mediante
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 00:13.