2011-11-17 22 views
5

È necessario richiamare la funzione Pagina contenuto dalla Pagina master. Per favore fatemi sapere se sono necessari più dati.Come chiamare la funzione Pagina contenuto da Pagina master

MasterPage.master.cs sembra

protected void Required_Function(object sender, EventArgs e) 
{ 
    // call Update_Content_Page() from content page 
} 

Default.aspx sembra

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="contentPlaceHolder" Runat="Server"> 

<asp:Label ID="Label1" runat="server" Text="Label">Hello people!</asp:Label> 

</asp:Content> 

Default.aspx.cs sembra

using… 
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Update_Content_Page() 
    { 
     Label1.Text=”Hello world”; 
    } 
} 
+1

possibile duplicato di [Metodo chiamata nella pagina principale] (http://stackoverflow.com/questions/6332889/call-method-in-master-page) –

+2

Non lo è. Sto chiedendo come chiamare la funzione Pagina contenuto da Pagina Master, non viceversa. –

+0

È lo stesso in linea di principio. –

risposta

6

si può provare in questo modo. non esattamente, ma ti aiuterà .....

È possibile ereditare la pagina da una classe base. Quindi puoi creare un metodo virtuale nella tua classe base che verrà sovrascritto nella tua pagina. È quindi possibile chiamare quel metodo virtuale dalla pagina master come questo -

(cphPage.Page as PageBase).YourMethod(); 

Qui, cphPage è l'ID del ContentPlaceHolder nella tua pagina master. PageBase è la classe base contenente il metodo YourMethod.

+0

Potrebbe funzionare, ma questo approccio è troppo complesso. Ci proverò la prossima volta. Forse :) Ma grazie mille comunque. –

+0

Potete per favore elaborare non riesco a capire ?? Verifica questo: http://stackoverflow.com/questions/13508855/accessing-content-page-method-from-masterpage-method –

1

Di solito trovo che quando la pagina Master ha bisogno di chiamare una funzione in una pagina di contenuto, si ha un difetto nel design della pagina. La MasterPage non dovrebbe aver bisogno di sapere nulla riguardo le pagine di contenuto. Ma se senti che questo è il modo giusto per te ecco un guide da CodeProject

+0

Parzialmente d'accordo con te. Nel 90% dei casi funzionerebbe esattamente come hai detto tu. Ma non esiste una cosa come "taglia unica". Si prega di vedere l'esempio che è stato fornito in una delle risposte qui sotto: http://www.asp.net/master-pages/tutorials/interacting-with-the-content-page-from-the-master-page-cs –

+0

Sì , hai ragione :) A volte devi cambiare le regole un po 'per ottenere il risultato desiderato. Ma è importante sapere quando lo fai, e perché :) –

1

Personalmente ho fatto un trucco usando jquery: Quando ho cliccato sul pulsante principale, effettivamente cliccato sul pulsante della pagina di contenuto chiamato "saveButton" e utilizzato la sua funzione:

HTML:

enter code here 

codice .Master jquery:

function tester() { 
     console.log("Testing"); 
     $("[id$='SaveButton']").click(); 
    } 

ho usato id = $ 'SaveButton perche' un Ora puoi sapere come, ASP.NET rinomina i controlli quando si trovano all'interno di un master, un ripetitore, una griglia e altri controlli contenenti. $ id = 'stuff' convalida che l'ID di controllo termina con 'roba'.

Problemi correlati