Pregunta

Tengo colección de sitios 'http://microsoft.com/' con pocas redes infantiles ex: http://microsoft.com/news/

Quiero crear un campo de búsqueda en la lista 'Páginas'.En cada campo de búsqueda web de niños debe apuntar a la lista de 'Páginas' de la Web actual.

Actualmente todos mis campos creados están relacionados con 'Páginas' lib en el sitio de la raíz.

Tengo definición de campo:

<Field Name="LookupToPages" 
   ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}"
         Type="LookupMulti"
         DisplayName="Related News"
         Group="Intranet.ContentTypes"
         Mult="TRUE"
         Overwrite="TRUE"
         SourceID="http://schemas.microsoft.com/sharepoint/v3"
         List="Pages"
         ShowField="Title"/>

Este campo se agregó a mi tipo de contenido que se utiliza en las páginas LIB:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0000"
                Name="News"
               Group="my froup"
               Description="Page layout for intranet news."
               Inherits="TRUE"
               Version="0">    
    <FieldRefs>
      <FieldRef ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}" Name="LookupToPages" />
    </FieldRefs>
  </ContentType>
</Elements>

Intenté agregar la definición de campo para obtener la función con el alcance 'Site' y 'Web'. Ambos tienen los mismos resultados.Solo tengo columna de búsqueda que apunta al sitio de la raíz.

¿Cómo relacionarse con este campo relacionado con la web?

¿Fue útil?

Solución

EVGENY,

Si esta es una búsqueda en la lista, usted mismo (es decir, usted desea seleccionar elementos forman la misma lista, como artículos de noticias relacionados) Puede configurar la propiedad de la lista en "Self".

<Field Name="LookupToPages" ID="{3B5B07A0-68DB-4BF6-AAAE-87B77CE430C6}" Type="LookupMulti" DisplayName="Related News" Group="Intranet.ContentTypes" Mult="TRUE" Overwrite="TRUE" SourceID="http://schemas.microsoft.com/sharepoint/v3" List="Self" ShowField="Title"/>

ver aquí para más información:

http://msdn.microsoft.com/en-us/library/AA979575.ASPX

Otros consejos

EVGENY,

Le recomiendo que utilice un receptor de eventos si está aprovisionando la lista o el tipo de contenido a través de una función.

En resumen, lo que necesita hacer es crear la columna de búsqueda en la lista, obtener un enlace de campo a la nueva columna y luego agregue el enlace de campo al tipo de contenido adjunto a la lista.

Algo como este debe hacer el truco, siempre que tenga los objetos de Mylist, MyListct y Pagelist:

string fieldName = myList.Fields.AddLookup("Page Column Display Name", pageList.ID, true);
SPField field = myList.Fields.GetFieldByInternalName(fieldName);
SPFieldLink fieldLink = new SPFieldLink(invoiceField);
myListCT.FieldLinks.Add(invoiceFieldLink);
myListCT.Update();

.b

En SP2013, puede crear una columna de búsqueda.En el campo "Obtener información de", elija Páginas del sitio.

Te recomiendo que use JSOM porque puede usarse en O 365 también fácilmente. Puedes usar el método: fieldcollection.addfieldasxml (Fieldchema, VERDADERO, SP.ADDFFFDIELPIONS.ADDTODEFAULTCONTENTTYPE);

ver para más información: >http://jososharepoint.com/2015/12/02/create-a-new-lookup-field-using-jsom-in-sharepoint-2013-office-365/

Licenciado bajo: CC-BY-SA con atribución
scroll top