2017-03-24 6 views
0

Ich möchte auf page_load Ereignis aller ASPX-Seiten an einem Ort zugreifen.Zugriff Page_Load-Ereignis für alle ASPX-Seiten an einem Ort

Szenario: -

Ich habe eine asp.net Website in WebForms (NICHT MVC). Es hat 70-75 .aspx Seiten. Jetzt möchte ich einige gleiche Geschäftslogik in page_load Ereignis aller Seiten durchführen.

Meine Frage: -

Jetzt Wie kann ich page_load aller 75 .aspx Seiten an einem Ort so, wenn Benutzeranforderung für form1.aspx oder form2.aspx oder form58.aspx ich damals meine gemeinsame Funktion aufrufen möchten.

Was ich versucht werden bis: -

ich oben beschriebene Szenario Application_BeginRequest Fall Global.asax Datei zu erreichen, verwendet, die für jede Anforderung rufen wird. Aber jetzt Problem ist, diese Application_BeginRequest auch auf ajax callauf button_click, genannt die ich nicht wollen. Ich möchte meine gemeinsame Funktion nur aufrufen, wenn page_load Ereignis ausgelöst wird.

Gibt es einen anderen Weg, um das obige Szenario mit httpmodule oder httphandler zu erreichen - Wenn ja, bitte helfen Sie mir.

Danke,

nennen Körperlich, dass gemeinsame Funktion in jeder einer jeden page_load ist keine gute Idee. Ich will es an einem gewöhnlichen Ort.

Antwort

0

Versuchen Sie, eine Basisklasse zu erstellen und all Ihre Seiten zu vererben, und rufen Sie beim Laden der Seite eine Funktion von base auf.

Andernfalls können Sie das Seitenlebenszyklusereignis in Ihrer Basisklasse überschreiben.

Und auch diese Besuche zur Überprüfung, ob eine Anforderung Postbacks ist oder nicht in global.asax

How do I detect if a request is a callback in the Global.asax?

0

Sie könnten kann es auf diese Weise tun:

1. create a separate class file Common_Page_Load.cs 

2. Write your logic inside that class file Common_Page_Load.cs 

3. Call that class file in every page_load function: 
    form1.aspx or form2.aspx or form58.aspx. 

4. If that needs to be conditional, 
    then create a Session variable and you might use it accordingly. 

zum Beispiel:

class Common_Page_Load { // separate .cs file 

    public bool some_logic() { 
    ... 
    if(...){ 
     return true;} 
    else{ 
     return false;} 
    } 
} 

Page_Load(...) { //page load of form 1 or form 2 or form 50 or so 

    if(Session["check_logic"] == "true"){ 
     Common_Page_Load CP = new CP(); 
     bool myvar = CP.some_logic(); 
     ... 
     ... 
    } 

} 

Ich hoffe, es hilft.

+0

Dies ist nicht die Lösung ... Sie müssen diese Funktion in jedem und 70-75 ASPX-Seiten aufrufen ... - Siehe meine Frage - Ich möchte zentralen Platz – prog1011

Verwandte Themen