2010-03-04 14 views
14

En mi sitio web ASP.Net tengo un botón. Cuando hago clic en el botón y vuelvo a cargar la página mediante el navegador, el evento de clic del botón se dispara. Si hay algún problema, por favor, ayúdenme.¿Por qué en ASP.NET es un evento de clic de botón se ejecuta cuando la página se actualiza?

+3

¿Podríamos tener un poco más de información sobre el problema real? ¿Recibe usted algún mensaje de error? –

+0

No es un problema. Cuando vuelvas a cargar la página, todas las acciones se realizarán nuevamente. – sashaeve

+1

Tal vez estoy siendo amargado, pero ¿cómo una pregunta que requiere adivinar el problema real obtiene 6 votos ascendentes? –

Respuesta

16

Si entiendo correctamente.

Tiene un formulario web con un botón.

Pulsar el botón que hace que una publicación vuelva y el controlador de eventos para el botón presione para ejecutar.

Luego pulses actualizar y la página tiene el botón controlador de eventos ejecutar de nuevo.

El motivo de esto es la actualización de la última información enviada al servidor. Que es la información de clic de botón en __doPostback. Es por eso que está viendo el evento del botón disparar nuevamente.

Aquí hay un article que habla sobre cómo detectar una actualización en una devolución de datos.

+0

¿Cómo puedo resolver este problema? – Noro

+1

@Noro hay un artículo que he vinculado en la respuesta. –

4

Es porque al hacer clic en ese botón se envía una solicitud POST a su página. Los datos POST se guardan en los encabezados http y cuando actualiza, se envían nuevamente al servidor.

Su navegador debe avisar cuando intenta actualizar la página.

3

Esto es por diseño. Cuando hace clic en un botón del lado del servidor (con el atributo runat="server"), un clic provocará una devolución de datos y se activará el evento de clic del botón.

Si desea un comportamiento del lado del cliente, debe utilizar el atributo OnClientClick, como se describe en this artículo de MSDN (Cómo responder a los eventos del control del servidor web del botón en el script del cliente).

0

Si esto es realmente importante para alguien, puede actualizar la página nuevamente a través de Response.Redirect(). Esta es la solución más fácil que he podido encontrar.

0

Tuve el mismo problema y se resolvió poniendo el botón como asp: AsyncPostBackTrigger de updatePanel.

0

Si desea actualizar parte de su página a continuación, poner el control en el interior del UpdatePanel si el control hace que PostBack

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Button CssClass="btn btn-default" 
      onClick="uploadAttachmentToList" runat="server" 
      ID="btnUpload" ClientIDMode="Static" Text="Upload" 
     /> 
    </ContentTemplate> 
</asp:UpdatePanel> 
0

la forma más fácil de resolver este problema consiste en redirigir su página a alguna URL o refrescar su página actual usando Response.Redirect (Request.RawUrl);

Cuestiones relacionadas