2009-07-24 11 views
0

J'essaie de fixer la hauteur d'un Databar Dojox 1.3 sur une seule ligne (comme Excel). La fonctionnalité actuelle consiste à augmenter automatiquement la hauteur de la ligne lorsque plus de données qu'il n'en faut pour une seule ligne sont disponibles.Comment définir la hauteur de ligne Dojox Datagrid sur une seule ligne?

Existe-t-il un moyen facile d'accomplir ceci? Il semble qu'il devrait être construit dans la fonctionnalité pour une grille de données, en considérant qu'il s'agit du comportement par défaut pour les feuilles de calcul.

Merci pour l'aide

+0

Actuellement, il n'existe aucun moyen de redimensionner une seule ligne dans le DataGrid. – seth

+0

Voir la réponse de jfkelley, le seul et unique moyen est de vous y frayer un chemin. Peut-être dériver votre propre classe de grille avec la fonctionnalité mentionnée pour parcourir les cellules du tableau (utiliser dojo.query après .render()), si l'objet de grille lui-même a cette fonctionnalité intégrée, vous pouvez facilement créer un bouton 'réduire/agrandir' – mschr

Répondre

0

Vous ne pouvez pas régler la hauteur, mais vous pouvez régler la largeur. Si vous avez une bonne idée de la largeur de votre cellule pour ajuster la chaîne sur une ligne, vous pouvez la définir dans votre < th> élément pour maximiser le nombre de lignes qui correspondent à une ligne.

<table //dojo grid properties> 
    <thead> 
     <tr> 
      <th width="90px" field="fieldName" ...> 
       Field Name 
      </th> 
      ... 
     </tr> 
    </thead> 
</table> 

Espérons que cela aide.

1

Je pense que vous pouvez.

Voici ce que j'ai expérimenté avec:
En classe .dojoxGridCellContent, ajouter:

white-space: nowrap; dépassement: masqué;

Pour mes fonctions "Squeeze/Expand", j'utilise une petite fonction pour modifier de manière dynamique un attribut de classe, puis je repeins la grille. Je crois fermement au besoin de pouvoir croquer les lignes (en Excel et en HTML) jusqu'à 1 "ligne" de haut afin de faciliter le balayage visuel vertical (tronquer le contenu des cellules si nécessaire), puis pour pouvoir les étendre à nouveau pour voir le contenu complet dans une cellule sur une ligne particulière.

Le fait de dimensionner manuellement la colonne pour qu'elle soit suffisamment large pour contenir tout le texte possible dans une cellule donnée est une solution terrible si vous avez des quantités variables de texte dans une cellule donnée. Pour les applications de productivité, les espaces blancs non fonctionnels sont l'ennemi.

Je souhaite qu'il y ait un moyen intégré à Dojo de faire cette chose utile (en résolvant aussi l'éternelle question des ellipses conditionnelles entre les navigateurs).

+0

, pour l'obtenir pour gagner les règles de spécificité CSS, j'ai mis ".claro .dojoxGridContent", pas seulement ".dojoxGridContent". Il peut y avoir un moyen de dicter le style de la div dojoxGridContent lors de la configuration de la grille, mais je ne sais pas encore ce que c'est. Sinon, ça marche super! – jfkelley

+0

Ok, c'est ici. Juste avant de rendre la grille, je parcours la structure de la mise en page et définit cellStyles = "white-space: nowrap; overflow: hidden; height: 1em". L'ajout de la hauteur vous permet de presser même s'il y a des objets br dans la cellule. – jfkelley

1

Trouvé un hack!

utiliser comme la colonne formatter:

function(obj){ 
    return "<div style='height:15px;text-overflow:ellipsis'>"+obj+"</div>" 
} 

Ceci est juste un hack et je vois un problème avec le sélecteur de ligne. Mais de toute façon, j'espère que cela vous aidera les gars.

Questions connexes