Creare parte Web programatically VS 2010
-
16-10-2019 - |
Domanda
ci sono per creare più parti web dopo un sito viene eseguito il provisioning con WSP. Posso creare sia wp da zero sull'azione funzione. O salvare una serie di WP in galleria e creare un'istanza di che, quando necessario. Il WSP per modello di sito crea anche lista e biblioteche dove questi wp andrà. La speranza che sto facendo senso. Quali sono le opzioni migliori per creare WP quando il sito è disposizioni. Dovrò aggiungere del codice per creare WP alla fine di provisioning sito, quindi sono certo sono state create tutte le liste. Si prega di suggerire.
Soluzione
Ok, considerare che abbiamo questo ambiente:
- Abbiamo il file WSP-livello aziendale (anche questo potrebbe essere sandbox in questa situazione, ma per chiarezza, consideriamo che è una fattoria uno).
- Questo WSP contiene alcune liste e definizioni biblioteche / casi, e anche alcune WebParts visive.
- Inoltre, il file WSP contiene almeno una caratteristica in esso.
- Questo WSP è aggiunto nella tua fattoria, distribuito a raccolta siti specificata e funzione è attivata lì. Così, elenchi e raccolte vengono creati e webparts vengono aggiunti nella galleria.
- Dopo tutto questo fatto, vogliamo creare un'istanza di un webpart 'Webpart1' a 'default.aspx' pagina del sito.
Da questo punto, si può aggiungere del codice al ricevitore funzione (in FeatureActivated), per raggiungere il nostro obiettivo. Questo codice sarà smth come questo:
// prepare the webpart
var webPart = new WebPart1();
// ...here you can initialize some webpart properties, if needed
// fetch SPFile object for default.aspx page
SPFile page = web.RootFolder.Files["default.aspx"];
if (page.Exists)
{
// ...here you probably need to check out the page if it is a publishing site
// get LimitedWebPartManager object for the page
var webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
// add our webpart into the 'Main' webpart zone, using zone index = 1
webPartManager.AddWebPart(webpart, "Main", 1);
// ...do not forget to commit your changes here if you are using publishing site
// save our changes
page.Update();
}
riferimenti MSDN: