Pregunta

Cuando un usuario sube/crea un documento en mi biblioteca de documentos, necesito poder aplicar una etiqueta de metadatos al documento desde la cadena de consulta de URL o desde el valor seleccionado en alguna parte web que también está en la página.

Aquí está la explicación completa: quiero construir una parte web que lea desde una lista y presente un árbol de navegación jeraquical, los nodos de nivel inferior se asignarán a los términos en la tienda de términos y serán enlaces a bibliotecas de documentos. Múltiples nodos de nivel inferior pueden apuntar a la misma biblioteca. Cuando un usuario hace clic en un nodo de nivel inferior, se lleva a la biblioteca relevante para ese nodo, cuando cree/cargue un documento, el término de metadatos apropiado (en el que se hace clic en el árbol de navegación) se aplicará al documento (pueden '' t entonces cámbielo).

¿Alguien tiene alguna idea de cómo se podría hacer esto? Pensé en agregar una cadena de consulta a la URL, pero no estoy seguro de cómo aplicar el término al elemento.

También pensé en crear un campo personalizado que se aplicaría al tipo de contenido de los documentos que se están cargando, pero no creo que el código en el campo pueda 'alcanzar' a la página para obtener el valor seleccionado de el control de navegación o obtenerlo de la URL tampoco.

Finalmente pensé en un receptor de eventos en la biblioteca de doc, pero nuevamente no estoy seguro de cómo obtener el término que debe aplicarse al documento,

Cualquier ayuda sería apreciada,

Gracias

¿Fue útil?

Solución

Si desea usar los parámetros de cadena de consulta para establecer metadatos, necesitará algún script que analice la cadena de consulta y establece los valores de campo. He hecho esto en el pasado con jQuery y Spservices. Marc ha creado un analizador de cadena de consulta simple en el proyecto SPServices.

Aquí hay un ejemplo de un proyecto en el que trabajé que obtuvo 2 variables de cadena de consulta y establece valores de campo con ellas.

<script type="text/javascript">
$(document).ready(function(){

var queryStringVals = $().SPServices.SPGetQueryString();
var IDtoGet = queryStringVals["theCID"];
var insEmail = queryStringVals["InstructorEmail"];
  $("textarea[Title$='People Picker']").val(insEmail);
  $("div[title='People Picker']").text(insEmail); 
}); //close doc ready
</script> 

Otros consejos

Como mencionó @PirateEner, una manera fácil de establecer campos de metadatos usando una cadena de consulta es mediante JavaScript. Yo mantengo Esputilidad.js lo que puede ayudar a establecer y obtener campos de SharePoint. Por ejemplo:

SPUtility.GetSPField('Document Category').SetValue(urlValue).MakeReadOnly();

Probablemente no pueda usar un receptor de eventos porque no tendrá acceso a un parámetro de cadena de consulta (ver Cómo recuperar la consulta en el evento de SharePoint itemAdded).

Ver también: Autopopular un formulario SharePoint de URL (con Sputility.js) (mi blog)

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