9

Esta es una cuestión de Visual Studio. Creo que con todo el útil Intellisense debería haber algo para ayudar pero parece que no puedo encontrarlo.Cómo agrego eventos de página para ASP.NET en Visual Studio 2008

Hice una página con un código detrás en ASP.NET C# en VS2008 y se autogenera un método de evento PageLoad, por supuesto. Bien, ¿y si quiero agregar métodos para más eventos además de PageLoad? Creo que habría alguna lista en la página Foo.aspx de posibles manejadores de eventos de métodos para agregar. ¿No hay más tal vez como PageInit, PageDispose, (o equiv) etc ...? ¿Dónde puedo encontrar estos?

EDITAR - Por supuesto, puedo buscar los nombres de los métodos en la API. Estoy buscando un atajo útil para agregar estos en Visual Studio. Si genera uno, ¿no puede hacer otros?

Respuesta

26
  • En el explorador de soluciones, haga clic derecho en la página y seleccione "Ver diseñador de componentes" en el menú contextual
  • abrir el panel de propiedades/ventana (prensa F4)
  • Ahora haga clic en la flecha amarilla/icono del flash y verá una lista de todos los eventos de página
  • doble clic en el evento para el que desea agregar un controlador

estoy bastante seguro de que había otro w ay (comenzando desde la vista del diseñador), pero no puedo reproducirlo.

Normalmente no utilizo los controladores de eventos de página, en su lugar, anulo los métodos correspondientes (por ejemplo, OnLoad en lugar de Page_Load). Para implementar una de estas anulaciones, simplemente escriba "anular" en el código subyacente y presione espacio para obtener una lista de métodos que puede anular.

+0

Obras en VS2017! –

3

como un acceso directo para ver lo que está disponible, siempre puede escribir "Página". y luego eche un vistazo a la lista en intellisense. A continuación, puede elegir uno, pulsar + = PestañaPestaña para que genere el código auxiliar para usted. una vez creado el código auxiliar, deberá eliminar la línea "Page.event + =" donde sea que lo haya creado. Una especie de solución alternativa, pero puede funcionar bastante rápido una vez que lo domines.

+0

Hokey pero no pokey - funciona de forma rápida y fácil de recordar. ¡Gracias! – McArthey

+0

Esto funciona bien. Dado que el evento se está manejando desde una referencia llamada 'Página', el controlador de eventos generado recibe un nombre correctamente, es decir:' Page_Load' para el evento 'Load'. La única parte difícil es que esto tiene que hacerse desde el "alcance del método", ya que no se puede acceder a la propiedad 'Page' en el alcance de la clase. –

3

Con la inestimable ReSharper instalado (podría funcionar sin ella) que sólo puede escribir:

override 

y cuando golpeo Intellisence espacio aparece con una lista de todos los eventos que pueda invalidar tales como OnInit, OnPreRender , etc.

+1

En VS2010, no tengo ReSharper instalado y parece hacer esto de todos modos. Creo que este es el enfoque más fácil de todos los mencionados hasta aquí. –

+0

Esto funciona, pero existen diferencias sutiles entre manejar los eventos y anular los métodos On_. –

0

En la ventana del código fuente, en el cuadro combinado de lista de objetos, seleccione el control deseado (página). A continuación, en el cuadro combinado de lista de eventos que se encuentra a la derecha del cuadro combinado de lista de objetos anterior, seleccione el evento deseado. Visual Studio creará el controlador de eventos para usted.

0

Si uno quiere no utilizar la forma como se describe por M4N sino a través de código:

En el PageName.aspx.cs;

private void InitializeComponent() 
{ 

    // this.LifeCycle += .. // Use intellisense to see alternatives easily 
    this.PreRender += new System.EventHandler(this.EventFunctionName); 

} 

continuación, en el mismo archivo Añadir:

private void EventFunctionName(object sender, EventArgs e) 
{ 
    // Code.. 
} 

ACTUALIZACIÓN (de comentario de Sahuagin): Esto no va a generar un controlador de eventos con el nombre apropiado. El controlador de eventos debe ser nombrado, por ejemplo, Page_Load. Esto lo nombrará después de su clase en lugar de después de la página, por lo que no se conectará a su página

+0

Además, esto tampoco generará un controlador de eventos con el nombre apropiado. El controlador de eventos debe ser nombrado, por ejemplo, 'Page_Load'. Esto lo nombrará después de su clase en lugar de después de 'Page', por lo que no se conectará a su página. –

+0

Originalmente había dicho que el controlador de eventos debe estar 'protected' y no' private'. Esto puede o no ser necesario dependiendo de la situación. –

+0

gracias, lo he agregado a la publicación también –

-1

TreeScheme.Nodes [0] .ChildNodes [0] .Checked = true;

treeviewid.node[0].childnodes[0].checked=true; 

Esto establecerá el nodo hijo comprobado cierto en la página del evento de carga de la página

feliz de codificación

+0

¿qué? a menos que esté equivocado esto no tiene nada que ver con la pregunta –

Cuestiones relacionadas