none
Al crear un receptor de eventos no me aparecen las listas y bibliotecas personalizadas RRS feed

  • Pregunta

  • Buenas,

    Intento crear un receptor de eventos con Visual Studio 2010 siguiendo estos pasos:

    - Crear nuevo proyecto de tipo "Receptor de Eventos"

    - Seleccionar el sitio sobre el que estoy trabajando e implementar como solución de granja de servidores.

    - Seleccionar "Eventos de elementos de lista"

    - En el desplegable de origen del elemento solo me aparecen las bibliotecas y listas que tiene por defecto el sitio de grupo, y no las que se han creado nuevas.

    Lo he probado en dos servidores diferentes y me ha pasado lo mismo.

    En muchos ejemplos que he visto se selecciona una "Custom List" ¿Hay que realizar algún paso antes para poder seleccionar las listas o bibliotecas personalizadas?

    Gracias y saludos.

    Manolo.

    martes, 20 de marzo de 2012 20:04

Respuestas

  • Hola Manuel,

    Lo que comentas es así, en el asistente de creación de manejadores de eventos te aparecen las listas que por defecto forman parte del sitio contra el que vas a depurar. Para registrar un manejador contra una lista nueva que has creado tienes dos opciones:

    Por defecto VS 2010 te genera el código CAML para registrar el manejador a nivel de plantilla de lista:


    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers ListTemplateId="104">
          <Receiver>
            <Name>ItemAddingERItemAdding</Name>
            <Type>ItemAdding</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>CustomErrorPages.ItemAddingER.ItemAddingER</Class>
            <SequenceNumber>10000</SequenceNumber>
          </Receiver>
    
      </Receivers>
    </Elements>
    

    Pero tu puedes tocar el CAML para que sea para tu lista concreta:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers ListUrl="Url Lista">
          <Receiver>
            <Name>ItemAddingERItemAdding</Name>
            <Type>ItemAdding</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>CustomErrorPages.ItemAddingER.ItemAddingER</Class>
            <SequenceNumber>10000</SequenceNumber>
          </Receiver>
    
      </Receivers>
    </Elements>
    

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    • Marcado como respuesta ManuelGB miércoles, 21 de marzo de 2012 19:59
    miércoles, 21 de marzo de 2012 7:04

Todas las respuestas

  • Buenas,

    Creo que sólo aparecen en el listado los tipos de listas y bibliotecas.

    He encontrado un foro donde se resuelve como desplegarlo para una lista (o biblioteca) en concreto. http://www.learningsharepoint.com/forum/sharepoint-2010-programming/deploy-event-receiver-to-specific-list-2010/

    Agradecería que me corrigieran si no es así.

    Un saludo.

    Manolo.

    martes, 20 de marzo de 2012 21:04
  • Hola Manuel,

    Lo que comentas es así, en el asistente de creación de manejadores de eventos te aparecen las listas que por defecto forman parte del sitio contra el que vas a depurar. Para registrar un manejador contra una lista nueva que has creado tienes dos opciones:

    Por defecto VS 2010 te genera el código CAML para registrar el manejador a nivel de plantilla de lista:


    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers ListTemplateId="104">
          <Receiver>
            <Name>ItemAddingERItemAdding</Name>
            <Type>ItemAdding</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>CustomErrorPages.ItemAddingER.ItemAddingER</Class>
            <SequenceNumber>10000</SequenceNumber>
          </Receiver>
    
      </Receivers>
    </Elements>
    

    Pero tu puedes tocar el CAML para que sea para tu lista concreta:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <Receivers ListUrl="Url Lista">
          <Receiver>
            <Name>ItemAddingERItemAdding</Name>
            <Type>ItemAdding</Type>
            <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
            <Class>CustomErrorPages.ItemAddingER.ItemAddingER</Class>
            <SequenceNumber>10000</SequenceNumber>
          </Receiver>
    
      </Receivers>
    </Elements>
    

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    • Marcado como respuesta ManuelGB miércoles, 21 de marzo de 2012 19:59
    miércoles, 21 de marzo de 2012 7:04
  • Buenas Juan Carlos,

    Tu solución me parece mucho más sencilla.

    Muchas gracias y saludos.

    miércoles, 21 de marzo de 2012 20:00