Domanda

Il problema che ho è che ho più pagine master nidificate:

  • Livello 1 : globale (intestazione, piè di pagina, di accesso, la navigazione, ecc ...)
  • livello 2 : specifica (pagine, pagine dell'account, ricerca, ecc ...)
  • Livello 3 : la pagina stessa

Ora, dal momento che solo una forma può avere runat=server, ho messo il modulo alla pagina globale (così posso gestire le cose come login, commenti, ecc ...).

ora con questa soluzione che avrei dovuto mettere anche l'ad esempio il livello 3 (vedi sopra) i metodi, come la ricerca anche sulla pagina master di livello 1, ma questo porterà a questa pagina essere pesante (per lo sviluppo) con codice da tutti i luoghi, anche quelli che vengono utilizzati in una singola pagina solo (modulo e-mail cambiamento per esempio).

esiste un modo per delegare tali metodi dagli eventi onclick (per esempio: ChangeEMail). Dal livello 1 (masterpage globale) al livello 3 (la singola pagina stessa)

per essere ancora più chiaro: Voglio non avere il metodo ChangeEMail sul codice pagina master alle spalle globale, ma vorrei 'SPOSTA' in qualche modo l'unica pagina che effettivamente utilizzare. il motivo per cui ha attualmente essere sul master globale è che il Maestro globale ha form runat=server e non ci può essere solo uno di quelli per pagina aspx.

in questo modo sarà più facile (più logico) per strutturare il codice.

thnx (speranza ho spiegato in modo corretto)

hanno cercato ma non ha trovato alcuna informazione generale sulla gestione di questo caso, quando arrivavano la risposta è: hanno tutti i metodi sulla pagina master, ma non mi piace. in modo che qualsiasi modo di muoversi alla pagina specifica sarebbe impressionante. thnx

modifica anche parte della stessa cosa ... d'altra parte - come accedere alla textbox1.text ad esempio sulla pagina di contenuti da pagina master? qualsiasi best practice per questo?

È stato utile?

Soluzione

Se si mette il pulsante di ricerca e di testo sul aspx stesso (livello 3) il gestore di eventi sarà anche andare nella pagina (o il suo codebehind). Non importa che il tag form è sul masterpage globale (livello 1)

Per quanto riguarda la seconda domanda: è possibile utilizzare

var tb = this.FindControl("textbox1") as TextBox;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top