Domanda

Quando un utente carica / crea un documento nel mio libreria di documenti, ho bisogno di essere in grado di applicare un tag di metadati per il documento, sia dalla stringa di query URL o dal valore selezionato in alcuni web-parte che è anche sulla pagina.

Ecco la spiegazione completa: Voglio costruire un web-parte che legge da un elenco e presenta un albero di navigazione gerarchica, i nodi di livello inferiore vengono mappati termini del termine-store e saranno collegamenti alle librerie di documenti. Più nodi di livello inferiore possono puntare alla stessa libreria. Quando un utente fa clic su un nodo di livello più basso vengono portati alla libreria relevent per quel nodo, quando creano / caricare un documento il termine metadati appropriati (che hanno cliccato sul nell'albero di navigazione) verrà applicato al documento (che possono' t poi cambiarlo).

Qualcuno ha qualche idea di come questo potrebbe essere fatto? Ho pensato di aggiungere una stringa di query all'URL ma non è sicuro come applicare poi il termine per la voce.

Ho anche pensato di creare un campo personalizzato che sarebbe stato applicato al tipo di contenuto dei documenti caricato, ma non credo che il codice nel campo sarebbe in grado di 'portata' fino sulla pagina per afferrare la il valore selezionato dal controllo di navigazione o scarica dall'URL sia.

Infine ho pensato di un ricevitore di eventi sulla libreria doc, ma ancora una volta non sono sicuro come ottenere il termine che deve essere applicato al documento,

Qualsiasi aiuto sarebbe apprezzato,

Grazie

È stato utile?

Soluzione

If you want to use query string parameters to set metadata, you're going to need some script that parses the query string and sets the field values. I've done this in the past with jQuery and SPServices. Marc has created a dead simple to use query string parser in the SPServices project.

Here's an example from a project I worked on that got 2 query string variables and set field values with them.

<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> 

Altri suggerimenti

As @PirateEric mentioned, an easy way to set metadata fields using a query string is by using JavaScript. I maintain SPUtility.js which can help with setting and getting SharePoint fields. For example:

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

You probably won't be able to use an event receiver because it won't have access to a query string parameter (see How to retrieve the querystring in Sharepoint itemadded event).

See also: Autopopulate a SharePoint Form from URL (with SPUtility.js) (my blog)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top