9

To jest trochę pytanie Visual Studio. Czuję, że przy wszystkich pomocnych IntelliSenseach powinno być coś do pomocy, ale nie mogę tego znaleźć.Jak dodać zdarzenia strony dla ASP.NET w Visual Studio 2008

Zrobiłem stronę z kodem kodu w ASP.NET C# w VS2008 i to automatycznie generuje metodę zdarzenia PageLoad, oczywiście. A co, jeśli chcę dodać metody do większej liczby wydarzeń poza stroną PageLoad? Sądzę, że na stronie Foo.aspx będzie dostępna lista możliwych metod obsługi zdarzeń metod do dodania. Czy nie ma ich więcej, może np. PageInit, PageDispose, (lub equiv) itd ...? Gdzie mogę je znaleźć?

EDYCJA - Mogę oczywiście wyszukać nazwy metod w interfejsie API. Szukam przydatnego skrótu, aby dodać je w Visual Studio. Jeśli to generuje, czy nie może zrobić innych?

Odpowiedz

26
  • W Solution Explorer, kliknij prawym przyciskiem myszy stronę i wybierz "View Component Designer" z menu kontekstowego
  • otworzyć/okno panelu Właściwości (Naciśnij F4)
  • teraz kliknąć żółtą strzałkę/ikona lampy błyskowej, a zobaczysz listę wszystkich wydarzeń stronie
  • kliknij dwukrotnie zdarzenie, dla którego chcesz dodać obsługi

Jestem całkiem pewien, że był inny w ay (począwszy od widoku projektanta), ale nie mogę go odtworzyć.

Zwykle nie używam programów obsługi zdarzeń strony, zamiast tego zastępuję odpowiednie metody (np. OnLoad zamiast Page_Load). Aby zaimplementować jeden z tych nadpisań, możesz po prostu wpisać "override" w odpowiednim kodzie i nacisnąć space, aby uzyskać listę metod, które możesz przesłonić.

+0

Pracuje w VS2017! –

3

jako skrót, aby zobaczyć, co jest dostępne, zawsze możesz po prostu wpisać "Strona". a następnie spójrz na listę w intellisense. Możesz wtedy wybrać jedną, naciśnij + = TabZakładka, aby wygenerować stub dla ciebie. po utworzeniu kodu pośredniczącego należy usunąć linię "Page.event + =", niezależnie od tego, gdzie została utworzona. Rodzaj hokey obejścia, ale może pracować dość szybko, gdy się go powiesić.

+0

Hokey, ale nie pokey - działa szybko i łatwo zapamiętać. Dzięki! – McArthey

+0

To działa ładnie. Ponieważ zdarzenie jest obsługiwane z odwołania o nazwie "Strona", wygenerowana procedura obsługi zdarzenia zostaje nawiasem mówiąc poprawnie nazwana, tj .: 'Page_Load' dla zdarzenia' Załaduj'. Jedyną trudną częścią jest to, że należy to zrobić z "zakresu metody", ponieważ nie można uzyskać dostępu do właściwości 'Strona' w zakresie klasy. –

3

Z nieocenioną ReSharper zainstalowany (może pracować bez) można po prostu wpisać:

override 

i kiedy uderzyć przestrzeń IntelliSence wyskakuje z listą wszystkich zdarzeń, które mogą zastąpić takie jak OnInit, OnPreRender itp.

+1

W VS2010, nie mam zainstalowanego programu ReSharper i wydaje się, że tak czy owak. Myślę, że jest to najłatwiejsze podejście do wszystkich wymienionych tu do tej pory. –

+0

Działa to, ale istnieją subtelne różnice między obsługą zdarzeń a nadpisywaniem metod On_. –

0

W oknie kodu źródłowego, z listy rozwijanej listy obiektów, wybierz żądaną kontrolkę (stronę). Następnie z listy rozwijanej listy zdarzeń po prawej stronie pola kombi poprzedniej listy obiektów wybierz żądane zdarzenie. Visual Studio utworzy dla ciebie obsługę zdarzeń.

0

Jeśli ktoś chce, aby nie używać tak jak opisał M4N ale poprzez kod:

W PageName.aspx.cs;

private void InitializeComponent() 
{ 

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

} 

następnie w tym samym pliku dodać:

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

Update (z komentarzem przez Sahuagin): To nie wygeneruje obsługi zdarzeń z odpowiednią nazwą. Program obsługi zdarzenia musi mieć nazwę, na przykład Page_Load. Spowoduje to nadanie jej nazwy po klasie, a nie po stronie, więc nie będzie ona faktycznie podłączona do strony użytkownika

+0

Nie spowoduje to również wygenerowania procedury obsługi zdarzeń o odpowiedniej nazwie. Program obsługi zdarzenia musi mieć nazwę, na przykład "Page_Load". Spowoduje to nadanie jej nazwy po klasie, a nie po stronie "Strona", więc nie będzie ona podłączona do strony. –

+0

Początkowo powiedziałem, że program obsługi zdarzeń musi być "chroniony", a nie "prywatny". Może to być konieczne lub nie, w zależności od sytuacji. –

+0

dziękuję, dodałem go do postu też: –

-1

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

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

Spowoduje to ustawienie węzeł podrzędny sprawdzane prawdziwe w widoku przypadku obciążenia stronie

szczęśliwy kodowania

+0

co? chyba że się mylę, nie ma to nic wspólnego z pytaniem –

Powiązane problemy