Estoy tratando de usar el control ImageButton solo para la ejecución de scripts del lado del cliente. Puedo especificar el script del lado del cliente para ejecutar utilizando la propiedad OnClientClick, pero ¿cómo puedo evitar que intente publicar cada vez que el usuario hace clic en él? No hay ninguna razón para publicar cuando se hace clic en este botón. Establecí CausesValidation en False, pero esto no impide que se publique.¿Puedo crear un ImageButton de ASP.NET que no se devuelva?
Respuesta
He aquí una manera que podría hacerlo sin entrar en conflicto con el funcionamiento de devolución de datos de otros controles:
definir su botón de algo como esto:
<asp:Button runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="alert('my client script here');my" />
El "mi" que termina en el controlador para OnClientClick es una forma de alias del evento del cliente __doPostBack de asp.net que fuerza la devolución de datos; simplemente anular el comportamiento por no hacer nada similar a esta secuencia de comandos:
<script type="text/javascript">
function my__doPostBack(eventTarget, eventArgument) {
//Just swallow the click without postback of the form
}
</script>
Editar: Yeesh, siento que tengo que tomar una ducha después de algunos de los trucos sucios que necesito para tirar con el fin de obtener asp. neta para hacer lo que quiero.
El truco" mi "funcionó para mí, pero también lo hizo "return false" al final que me hizo sentir menos asqueroso – Carl
Estoy teniendo el mismo problema ... http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button -while-displaying-a-popup-using-jquery. Estoy a punto de probar tu solución ahora. – SearchForKnowledge
<image src="..." onclick="DoYourThing();" />
Eso sería perfecto, excepto que este botón está construido dinámicamente en el lado del servidor y debe ser un objeto .NET. – Giffyguy
Siempre puede tener un control 'asp: literal' en su página, y en su código detrás de establecer texto dinámicamente a eso, es decir:' myLiteral.Text = ""; ' –
Utilice un servidor de control de imagen
<asp:Image runat="server" .../>
bastante seguro de que puede agregar el evento de cliente onclick
a eso.
Otra solución sería definir un PostBackUrl que no hace nada
<asp:imagebutton runat="server" PostBackUrl="javascript:void(0);" .../>
Sé que este problema ya ha sido contestada, pero una solución sencilla es volver falsa del HTML onclick método (es decir, el método ASPX OnClientClick) p.ej
<asp:ImageButton ID="ImageNewLink" runat="server"
ImageUrl="~/images/Link.gif" OnClientClick="DoYourStuff(); return false;" />
Devolución de falso detiene el navegador para que la solicitud vuelva al servidor i.s. detiene la devolución de datos de .NET.
Me gustaría sugerir una opción adicional de OnClientClick = "return DoYourStuff();". Luego devuelve falso dentro de DoYourStuff(). De esta forma, DoYourStuff puede devolver verdadero o falso dependiendo de otros factores y, potencialmente, permitir la devolución de datos para ciertas condiciones. – TTT
Si tengo varios botones en un GridView, el mío solo funciona la primera vez y en cualquier momento después, la función no se dispara. http://stackoverflow.com/questions/25979847/how-to-prevent-postback-on-asp-button-while-displaying-a-popup-using-jquery – SearchForKnowledge
@TTT Eso es lo que intenté primero, pero por alguna razón No funciona. Aunque, si puse el 'return false;' en 'OnClientClick' como sugirió CodeClimber, funciona. – TheWanderingMind
Esto funciona muy bien para mí:
Uso OnClientClick
para escribir su guión y PostBackUrl="javascript:void(0);"
para evitar la devolución de datos.
<div class="close_but">
<asp:ImageButton ID="imgbtnEChartZoomClose" runat="server" ImageUrl="images/close.png" OnClientClick="javascript:zoomclosepopup();" PostBackUrl="javascript:void(0);" />
</div>
Solución 1
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="return false;" />
O Solución 2
<asp:ImageButton ID="btn" runat="server" ImageUrl="~/images/yourimage.jpg"
OnClientClick="yourmethod(); return false;" />
Además (solución 2), su método de javascript puede ser en esta forma
<script type="text/javascript">
function yourmethod() {
__doPostBack (__EVENTTARGET,__EVENTARGUMENT); //for example __doPostBack ('idValue',3);
}
</script>
en código detrás de
protected void Page_Load(object sender, System.EventArgs e)
{
if (this.IsPostBack) {
string eventTarget = this.Request("__EVENTTARGET") == null ? string.Empty : this.Request("__EVENTTARGET");
string eventArgument = this.Request("__EVENTARGUMENT") == null ? string.Empty : this.Request("__EVENTARGUMENT");
}
}
Use OnClientClick para escribir su script y PostBackUrl = "javascript: void (0);" para evitar la devolución de datos
- 1. ¿Se garantiza que un objeto se moverá cuando se devuelva?
- 2. ¿Cómo puedo hacer que un método devuelva un argumento que se le pasó?
- 3. Deshabilitar un ImageButton
- 4. Crear una función de Oracle que devuelva una tabla
- 5. ¿desactivar un ImageButton?
- 6. ¿Cómo crear diferentes pendientes para que filterEquals() devuelva false?
- 7. Cómo hacer que BackgroundWorker devuelva un objeto
- 8. No se puede entrar en un método que devuelva IEnumerable <T>?
- 9. ¿Qué causa que Ghostscript devuelva un error de -100?
- 10. ¿Cómo puedo hacer que un procedimiento almacenado devuelva un "conjunto de datos" usando un parámetro que paso?
- 11. ¿Está bien que un método de fábrica devuelva nulo?
- 12. ¿Cómo crear un enlace que contiene una imagen y texto?
- 13. PyQt4: Crear un cuadro de diálogo personalizado que devuelva los parámetros
- 14. ¿Cómo puedo hacer que XHR.onreadystatechange devuelva su resultado?
- 15. Evento ASP.Net Session_Start que no se activa
- 16. Silverlight ImageButton UserControl
- 17. ¿Puedo tener un método que devuelva IEnumerator <T> y usarlo en un bucle foreach?
- 18. ¿Se puede crear una etiqueta de plantilla personalizada que devuelva un conjunto de preguntas? Si es así, ¿cómo? - Django
- 19. Objetivo C: ¿hay una ruta de acceso de tecla que hará que un objeto se devuelva?
- 20. Loop hasta que se devuelva verdadero con PHP
- 21. asp: ImageButton no activa el evento onclick
- 22. ¿Cómo puedo hacer que la página php devuelva un error 503 (o cualquier cosa que no sea 200)
- 23. ¿Es posible crear un archivo que no se puede copiar?
- 24. Android ImageButton con un estado seleccionado?
- 25. ¿Cómo puedo obtener un generador de Python para que devuelva None en lugar de StopIteration?
- 26. Crear token de delegación: no se puede crear un SecurityTokenService
- 27. Grails: puedo hacer que un validador se aplique solo para crear (no actualizar/editar)
- 28. ¿Cómo hago que MySQL devuelva UTF-8?
- 29. ImageButton en Android
- 30. ¿Cómo hacer que un método asíncrono devuelva un valor?
¿Alguna razón para no utilizar el evento onclick de una etiqueta img? –
@ BigJason: me gustaría evitarlo si es posible. Este botón es muy complejo y está construido en el lado del servidor. – Giffyguy