Pregunta

Debemos crear varias piezas web después de que se aprovisione un sitio con WSP. Puedo crear WP desde cero en la acción de la función. O guarde un conjunto de WP en la galería y cree una instancia de eso cuando sea necesario. El WSP para la plantilla del sitio también crea una lista y bibliotecas donde irán estos WP. Espero que tenga sentido. ¿Cuáles son mis mejores opciones para crear WP cuando el sitio son las disposiciones? Tendré que agregar algún código para crear WP al final del sitio de aprovisionamiento, por lo que estoy seguro de que todas las listas se han creado. Por favor recomiende.

¿Fue útil?

Solución

Ok, considere que tenemos este entorno:

  1. Tenemos un archivo WSP a nivel de granja (esto también podría ser arenado en esta situación, pero para mayor claridad, consideremos que es una granja).
  2. Este WSP contiene algunas listas y definiciones/instancias de bibliotecas, y también algunas partes web visuales.
  3. Además, el archivo WSP contiene al menos una característica en él.
  4. Este WSP se agrega a su granja, implementado en la recolección de sitios especificada y la función se activa allí. Por lo tanto, se crean listas y bibliotecas y se agregan tarjetas web a la galería.
  5. Después de todo esto, queremos instanciar un sitio web 'WebPart1' en la página del sitio 'Default.aspx'.

Desde este punto, podemos agregar algún código al receptor de funciones (en caracteres (características), para lograr nuestro objetivo. Este código se verá de esta manera:

// 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();
}

Referencias de MSDN:

  1. SplimitedWebPartManager
  2. SplimitedWebpartManager.addwebpart
  3. Cómo: trabajar con piezas web en una página
Licenciado bajo: CC-BY-SA con atribución
scroll top