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

Ejecutar un evento despues de un JS

Estas en el tema de Ejecutar un evento despues de un JS en el foro de ASPX (.net) en Foros del Web. Que onda! Tal vez mi pregunta es algo basica pero ahi va. Quisiera saber como podria yo ejecutar un java script de confirmacion en un ...
  #1 (permalink)  
Antiguo 09/12/2005, 10:52
Avatar de xindi  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 0
Ejecutar un evento despues de un JS

Que onda!

Tal vez mi pregunta es algo basica pero ahi va.

Quisiera saber como podria yo ejecutar un java script de confirmacion en un boton y si la respuesta es no, que no me ejecute el evento, se me ocurre un par de formas pero es vil truco y no creo que .net sea tan malo que no traiga halgo que te permita hacerlo, en todo caso yo le agrego el javascript al onclick pero pues si se mete al evento y si el usuario contesta No si se ve el pantallazo, aparte se puede hacer algo como esto?

<asp:linkbutton ID="Eliminar" CommandName="Eliminar" Runat="server" OnClick="JavaScript:Valida();">

Espero me puedan ayudar
__________________
Only exist 10 kinds of persons in the world, those that understand binary and those that don't
  #2 (permalink)  
Antiguo 09/12/2005, 19:08
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Haz que tu función Valida devuelva un "true" o "false", luego añades en el evento onclick del cliente esto: return Valida();

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 12/12/2005, 10:27
Avatar de xindi  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 0
Podrias ser mas ilustrativo?

Te refieres a hacer algo como esto?

<asp:linkbutton ID="lkbdel" CommandName="Eliminar" Runat="server" OnClick="return Valida();">...</asp:linkbutton>

Tampoco he podido hacer algo como esto

lb.Attributes("onclick") = "JavaScript:Valida();"

ya que el linkbutton esta en un Data Grid

lb = dgitem.FindControl("lkbdel")
lb.Attributes("onclick") = "JavaScript:Valida();"
__________________
Only exist 10 kinds of persons in the world, those that understand binary and those that don't
  #4 (permalink)  
Antiguo 12/12/2005, 13:22
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Hmm, suponía que ya tenías conocimientos en javascript.
Código:
 // js
function foo() {
    if ( unValor > 0 || unaCondicion )
        return true;
    else
        return false;
}
// c#
Eliminar.Attributes.Add("onclick", "return foo();");
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 12/12/2005, 16:20
Avatar de xindi  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 3 meses
Puntos: 0
No lo del JS esta claro, esa no era la duda la cuestion es que con eso no evito la ejecucion del evento, que eso era lo optimo, aparte aclaro que no puedo agregarle el Attributes desde el code behind ya que el linkbutton se genera dentro de un datagrid el cual tiene un # de filas variable segun mi base de datos, intentaba hacer algo como:

Dim lb As LinkButton

For i = 0 To (Me.DgFases.Items.Count - 1)
dgitem = DgFases.Items(i)
lb = dgitem.FindControl("lkbdel")
lb.Attributes("onclick") = "JavaScript:Valida();"
Next
esto en el pre render pero no me funciona, la parte dgitem.FindControl("lkbdel") no me permite alterar el Attributes, espero haberme explicado
__________________
Only exist 10 kinds of persons in the world, those that understand binary and those that don't
  #6 (permalink)  
Antiguo 14/12/2005, 16:34
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Bueno si se requiere forzosamente con un linkbutton del lado del server, yo haria algo como esto (faltaria la adaptacion final), ya que normalmente
hago la validacion para eliminar elementos de un grid con javascript. es decir con un <a href="miscript">
que realiza la validacion y ejecuta el codigo necesario para la eliminacion. Aunque tal vez lo pruebe algo como esto en la sig oportunidad... d:D

Código:
En el grid : con una plantilla.

<asp:TemplateColumn>
	<ItemTemplate>
		<asp:linkbutton id="LinkButton2" runat="server" OnClick="Elimina" OnLoad="LinkButton2_Load">LinkButton</asp:linkbutton>
	</ItemTemplate>
</asp:TemplateColumn>


En el codigo : c#

protected void LinkButton2_Load(object sender, System.EventArgs e)
{
	LinkButton lb;
	lb = (LinkButton) sender;
	lb.Attributes.Clear();
	lb.Attributes.Add("OnClick","return confirm('¿Esta seguro de Eliminar registro ?');");
}


protected void Elimina(object sender, System.EventArgs e)
{
	//codigo para eliminar
}
  #7 (permalink)  
Antiguo 23/03/2006, 11:23
 
Fecha de Ingreso: mayo-2003
Ubicación: Monte VI D.E.O.
Mensajes: 78
Antigüedad: 21 años
Puntos: 0
Tengo la misma situacion Xindi, no sé si a esta altura lo resolviste, imagino que si, pero para que quede, yo lo soluciono de esta forma:
Cuando pongo un link en un datagrid, utilizo el evento Item_DataBound del datagrid
En el evento item_databound lo que hago es ubicar el control link:

HyperLink myLnk = (HyperLink) e.Item.FindControl("NombreDeMiControl");
myLnk.NavigateUrl = string.Format(javascript:FuncionJSP());

Luego la función javascript puede retornar un submit o algo asi para enviar otra vez la página al servidor y ahi en el PageLoad podés recibir algún parámetro para saber si venís de la función o qué, de esa forma mandarías los eventos.

Si en el momento de bindear el Datagrid desde la BDD sabés cuáles links generarían un evento y cuáles no, el asunto se pone más fácil aún:

Imagino que tomaras un valor de la BDD tipo 1 o 0 según genere o no genere el evento.

En el Item_DataBound del Datagrid, ponés una suerte de If que haga algo como:
DataRowView myDR = e.Item.DataRowView
HyperLink myLnk = (HyperLink) e.Item.FindControl("NombreDeMiControl");
myLnk.NavigateUrl = string.Format(javascript:FuncionJSP('{0}'),myDR[0].ToString());

Espero te sirva
__________________
:adios: Henry Rodriguez :adios:
El todo es mucho mas que la suma de las partes<-- No se quien lo dijo pero suena interesante :)
  #8 (permalink)  
Antiguo 04/05/2006, 21:22
Avatar de Mauricio castro  
Fecha de Ingreso: mayo-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Mensaje OK genial, tambien sirve con templetesImagen button

protected void ConfirmarDel_Load(object sender, System.EventArgs e)
{

ImageButton Ib;
Ib = (ImageButton) sender;
Ib.Attributes.Clear();
Ib.Attributes.Add("OnClick","return confirm('¿Esta seguro de Eliminar registro ?');");
}

y en el html

<ItemTemplate>
<asp:ImageButton id="BtnEliminar" runat="server" ImageUrl="../../imagen/icons/deletetras.gif" CommandName="SelectDelete"
OnLoad="ConfirmarDel_Load"></asp:ImageButton>
</ItemTemplate>

Y elimino con el itemcomand del datagrid

private void datagridname_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TableCellCollection ml_Celda;
int ml_IdSelectItem;


String ml_accion = "";

ml_accion = e.CommandName.ToString();

datagridname.SelectedIndex = e.Item.ItemIndex;

switch (ml_accion)
{

case "SelectDelete":

ml_Celda = datagridname.SelectedItem.Cells;
ml_IdSelectItem = int.Parse(ml_Celda[2].Text);

m_eliminarGrupo(ml_IdSelectItem);

break;

}

}

Saludos...
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

SíEste tema le ha gustado a 1 personas




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