1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| <script type="text/javascript">
// 'C'est un javascript qui initialise par défaut la valeur d'un lookup
// 'identifié par <<FIELD DISPLAY NAME>> avec la valeur stockée dans
// 'la variable identifiée par <<QUERYSTRING VARIABLE NAME>>
// 'Cette fonction ajoute "fillDefaultValues" à une liste de fonctions
// 'JS que la page aspx devra exécuter au chargement.
_spBodyOnLoadFunctionNames.push("fillDefaultValues");
function fillDefaultValues() {
//'récupération du champ et de sa valeur dans l'url (GET)
var qs = location.search.substring(1, location.search.length);
var args = qs.split("&");
var vals = new Object();
for (var i=0; i < args.length; i++) {
var nameVal = args[i].split("=");
var temp = unescape(nameVal[1]).split('+');
nameVal[1] = temp.join(' ');
vals[nameVal[0]] = nameVal[1];
}
//'Appel de la fonction de pré-remplissage
setLookupFromFieldName("<<FIELD DISPLAY NAME>>", vals["<<QUERYSTRING VARIABLE NAME>>"]);
}
//'Est utilisée pour le comportement spécifique des lookups
function setLookupFromFieldName(fieldName, value) {
if (value == undefined) return;
var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName);
// 'si theSelect est null, ça veut dire que la liste voulue contient plus de
// '20 items, donc le Lookup sera représenté par un élément de type Input.
if (theSelect == null) {
var theInput = getTagFromIdentifierAndTitle("input","",fieldName);
ShowDropdown(theInput.id); //'fonction fournie par SharePoint
var opt=document.getElementById(theInput.opt);
setSelectedOption(opt, value);
OptLoseFocus(opt); //'fonction fournie par SharePoint
} else {
setSelectedOption(theSelect, value);
}
}
// 'Fonction spécifique aux champs de type Select, qui sélectionne
// 'la valeur value
function setSelectedOption(select, value) {
var opts = select.options;
var l = opts.length;
if (select == null) return;
for (var i=0; i < l; i++) {
if (opts[i].value == value) {
select.selectedIndex = i;
return true;
}
}
return false;
}
// 'La fonction centrale de ce script, permet de retrouver un objet javascript
// 'via le tagName (input, select), l'identifier (optionnel, voir plus bas),
// 'et la propriété title du champ (attention aux caractères non-ascii)
function getTagFromIdentifierAndTitle(tagName, identifier, title) {
var len = identifier.length;
var tags = document.getElementsByTagName(tagName);
for (var i=0; i < tags.length; i++) {
var tempString = tags[i].id;
if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
return tags[i];
}
}
return null;
}
</script> |
Partager