controllo server personalizzato sulla pagina di pubblicazione MOSS
-
06-07-2019 - |
Domanda
La domanda era:
Ho una pagina in un MOSS 2007 sito di pubblicazione che utilizza un layout (la pagina eredita da
Microsoft.SharePoint.Publishing.TemplatedRedirectionPage
), e Ho bisogno di scrivere un codice dietro per questo pagina, ma lascia comunque il layout meccanismo di templating funziona.Il mio tentativo è stato quello di scrivere una lezione che eredita da
Microsoft.SharePoint.Publishing.TemplatedRedirectionPage
, e quindi modificare la pagina per ereditare dalla mia classe. La pagina si comporta normalmente (cioè, ha funzionato come prima), ma i metodi nel mio codice dietro la classe non viene chiamata.Qualcuno sa cosa dovrei fare?
Ma a questo punto, sono abbastanza sicuro che non funzionerà. La mia direzione attuale è quella di provare a posizionare un controllo server personalizzato sulla pagina di pubblicazione, ma non riesco nemmeno a farlo funzionare. Non è possibile personalizzare una pagina di pubblicazione se non attraverso il suo layout (che qui non è un'opzione)?
Soluzione
A quanto pare, il modo più semplice per ottenere ciò che volevo era eliminare un'area web part sul layout di pagina, quindi utilizzare i controlli di modifica di SharePoint per aggiungere il mio controllo (che può essere trasformato in un Web in parte banalmente).
Va ??tutto bene e non ho dovuto fare nulla di strano.
Altri suggerimenti
Ok, ecco come funziona. Credo che tu abbia ottenuto questa classe Microsoft.SharePoint.Publishing.TemplatedRedirectionPage
da un file nella cartella Template del sito. Queste pagine sono solo una specie di segnaposti. Le pagine effettive che vengono create nel sito non si basano sulla pagina TemplatedRedirection ma sono dell'istanza del layout di pagina esistente nel sito.
Per risolvere il tuo problema puoi prendere
- Personalizza il layout della pagina (Eredita la classe di layout della Pagina di pubblicazione e fai le cose che vuoi) Ma hai detto che non lo vuoi.
- Le seconde opzioni disponibili sono la creazione di pagine Ghostable mediante Feature e il loro provisioning sul sito (esiste una differenza tra le pagine Ghostable e le pagine GhostableInLibrary). Il modo in cui questo risolverà i tuoi problemi è che puoi scrivere qualsiasi codice personalizzato / Ereditare da qualsiasi classe desideri e utilizzare una funzione per fornirlo. Un esempio è quello di guardare il file 'C: \ Programmi \ File comuni \ microsoft shared \ Web Server Extensions \ 12 \ TEMPLATE \ SiteTemplates \ sts' e guardare in onet.xml per come viene eseguito il provisioning, C: \ Programmi \ File comuni \ microsoft shared \ Web Server Extensions \ 12 \ TEMPLATE \ SiteTemplates \ sts \ xml \ onet.xml ~ 163 line Number.
Una pagina di pubblicazione è essenzialmente un layout di pagina (modello) che è stato popolato dall'utente finale. La sua logica deriva esclusivamente dai controlli che sono stati aggiunti al layout di pagina. Non ho sentito di ereditare da una classe di pagine di pubblicazione perché non dovrebbe essere necessario: modificare il layout di pagina è il modo di farlo.
Questo non ti aiuta davvero se non riesci a modificare il layout della pagina (c'è qualche motivo?). Non sono sicuro di quale funzionalità stai tentando di aggiungere alla pagina, ma ecco alcune idee:
- Crea un nuovo layout di pagina contenente un controllo personalizzato con le funzionalità di cui hai bisogno e crea una pagina di pubblicazione basata su quello.
- Se hai già controlli personalizzati utilizzati nel layout di pagina, modificali per fornire la funzionalità richiesta.
- Esamina controlli delegato e vedi se funzioneranno per te .