Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités

SharePoint 2007 & Design : crash du mode feuille de données (Datasheet) sous IE

Il y a de temps en temps des surprises dans la personnalisation de SharePoint, si si.

La dernière en date que je viens de vivre avec l’un de mes collègues designer est proche d’une belle migraine, limite “nervous breakdown”

image

(désolé pour la référence)

Le contexte : Suite à une personnalisation avancée de la Master Page, l’ouverture d’une liste en mode feuille de donnée prend beaucoup de temps voir plante internet explorer …

image

Hum hum.

Donc après bien des tests, on a pu identifier des styles responsables d’une sorte de boucle infinie : merci le padding
>>> Et surtout ensuite, nous avons pu chercher sur le web de manière moins hasardeuse pour compléter notre analyse


Voici justement quelques posts TRES indicatifs

(Je ne saurais trop vous conseiller le dernier)

En résumé, la fonction GCComputeSizing du fichier Core.js dans le 12 assure le calcul de la dimension de la Grid.

Malheureusement, si la balise container s’appuie sur une DIV ou un TABLE qui possède, ou hérite d’un style avec du padding/margin voir un element enfant plus bas comme un footer, la fonction rentre dans une sorte de boucle infernal ralentissant tout le processus.

La fonction a des soucis a simplement “sizer” la hauteur du composant

Soit plusieurs pistes de solutions plus ou moins viable à tenter

  • Identifier les margin paddin : attention à votre style malheureusement
  • Dimensionner votre container
  • rajouter un style de dimensionnement clair et précis
    >>> la solution retenue dans mon cas

    .ms-bodyareaframe object {width:100%!important; height:auto!important;}
    (bien rajouter ce style sur la balise encapsulant votre contenu !!! )
  • Modifier la fonction dans le core.js

 

Bon évidemment, la dernière solution n’est pas une bonne pratique mais rien ne vous empêche de surcharger la fonction en externe via un second js voir directement dans la master

 

<script type="text/javascript">
function GCComputeSizing(GCObject) 
{ 
if (TestGCObject(GCObject)) 
{ 
var fBIDI=(document.documentElement.currentStyle.direction=="rtl"); 
var lGCWindowWidth=document.documentElement.scrollWidth; 
var lGCWindowHeight=(document.documentElement.scrollHeight>document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.documentElement.scrollHeight;
 var lGCObjectOffsetLeft=0; 
var lGCObjectOffsetTop=0; 
if (fBIDI) 
{ 
lGCObjectOffsetLeft=-180; 
lGCObjectOffsetTop=120; 
} 
else 
{ 
lGCObjectOffsetLeft=32; 
lGCObjectOffsetTop=-2; 
} 
var lGCObjectWalker=GCObject.parentElement; 
while (lGCObjectWalker !=document.body) 
{ 
lGCObjectOffsetLeft+=lGCObjectWalker.offsetLeft; 
lGCObjectOffsetTop+=lGCObjectWalker.offsetTop; 
lGCObjectWalker=lGCObjectWalker.offsetParent; 
if (fBIDI) 
if (lGCObjectWalker.offsetLeft > 0) 
break; 
} 
lGCObjectOffsetLeft+=GCObject.parentElement.offsetLeft; 
lGCObjectOffsetTop+=GCObject.parentElement.offsetTop; 
glGCObjectHeight=lGCWindowHeight - lGCObjectOffsetTop; 
if (glGCObjectHeight > lGCWindowHeight) 
glGCObjectHeight=lGCWindowHeight 
if (glGCObjectHeight < cGCMinimumHeight)f 
glGCObjectHeight=cGCMinimumHeight; 
if (fBIDI) 
{ 
glGCObjectWidth=lGCWindowWidth+lGCObjectOffsetLeft; 
} 
else 
glGCObjectWidth=lGCWindowWidth - lGCObjectOffsetLeft; 
if (glGCObjectWidth > lGCWindowWidth) 
glGCObjectWidth=lGCWindowWidth; 
if (glGCObjectWidth < cGCMinimumWidth) 
glGCObjectWidth=cGCMinimumWidth; 
} 
}
</script>

 

Normalement, tout devrais rentré dans la normale

Voila voila, je me retourne à ma VPC et les biberons Sourire

Renaud Comte aka TheMit (le CSS et SharePoint, c’est des fois proche du S&M…)
Member of WygTeam
http://www.wygwam.com
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 11 octobre 2010 17:38 par themit

Commentaires

Poppyto a dit :

HS:M'en parle pas on a eu une grosse embrouille à la boite avec ce fameux mode feuille de données sous SPS2003 parceque le parc était pas homogène sur les clients -Office 2003 &amp; Outlook 2007- du coup ça utilisait l'ocx stslist de 2007 et ca faisait cacher IE.... bref tout un programme :D

# octobre 11, 2010 22:28
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- VMMap en mode instrumentation sur système 64bit : attention à la plateforme cible du build .NET par CoqBlog le il y a 12 minutes

- Etendre le Team Web Access de TFS 2012 – Step 0 par Philippe Didiergeorges Aka Philess le 05-23-2013, 23:48

- Simuler facilement l’envoi de mail par Blog de Jérémy Jeanson le 05-22-2013, 12:52

- ProcDump 6.0 : support du filtrage sur messages d'exceptions .NET, des filtres multiples et du ciblage par nom de service par CoqBlog le 05-20-2013, 14:50

- Votez pour le TOP 10 des influenceurs SharePoint francophones ! par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 12:59

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:09

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:03

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 08:27

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29