Kendo Largeur De Colonne De Grille + Défilement
Je suis en train de le lier à un défilement de kendo de la grille à partir de javascript et avoir quelques problèmes avec les largeurs de colonne. Cette violon démontre le problème (code à la fin de la question). Je suis en précisant les en-têtes dans le code html et l'ajout d'une largeur de un des en-têtes. Le javascript puis définit la source de données (dans le code de production cela se fait via un appel ajax).
Je veux éviter d'avoir à définir les colonnes.la largeur de la propriété dans le code javascript, parce que
- J'ai beaucoup de grilles que, depuis mon viewmodel sont soigneusement construits sont capables de mettre automatiquement à discerner les colonnes requises. Nous avons plus de 100 ceint dans notre application, et d'avoir à préciser la liste des colonnes pour tous serait lourd.
- Il se sent mal, de toute façon, c'est des informations sur le style.
Je ne comprendre que la fonctionnalité est en raison de kendo création de deux grilles, une pour les en-têtes et un pour le défilement de contenu. Cependant, d'autres libs que j'ai utilisé dans le passé que faire des choses similaires ont toujours copié le style de l'information entre les deux réseaux afin de faciliter déclarative style tout en gardant les deux tables dans sync - je ne suis pas sûr de ce que le "kendo" pour cela.
HTML à partir de violon
<table>
<thead>
<th class="p20" data-field="status">Status</th>
<th data-field="description">Description</th>
</thead>
</table>
Javascript
$('table').kendoGrid({
dataSource: [
{ status: 'On', description: 'a longer description' },
{ status: 'On', description: 'a longer description' },
{ status: 'On', description: 'a longer description' },
{ status: 'On', description: 'a longer description' },
{ status: 'On', description: 'a longer description' },
{ status: 'On', description: 'a longer description' }
],
scrollable: true
});
CSS
.k-grid-content {
height: 100px;
}
.p20 {
width: 20%;
}
OriginalL'auteur Chris Meek | 2013-07-09
Vous devez vous connecter pour publier un commentaire.
Ici est assez simple grille avec la barre de défilement horizontal (ignorer la virtualisation) http://demos.kendoui.com/web/grid/virtualization-remote-data.html. Ont une largeur sur votre grille ou de sa société mère et la largeur de chaque colonne avec leur somme au niveau de la grille de largeur, puis vous obtenez votre barre de défilement:
Déjà répondre hier dans votre autre post :
Les lignes de colonne ne sont pas synchronisés dans une grille de Kendo
Ou
http://jsfiddle.net/vojtiik/2ApvC/3/
Remarque, je suis à l'aide de bits version plus récente de kendo et de jQuery, vous n'.
Oui, j'ai réalisé plus tard sur ce que vous êtes sur sur les, peu différent de hiers question. Comment envisagez-vous de traiter avec grille où le texte/la valeur de la largeur est de plus de 20% ? Avez-vous toujours afficher les mêmes données dans vos colonnes. Vous pouvez définir la largeur sur l'ensemble de vos colonnes et les en-têtes que vous le souhaitez et de déployer des points de suspension ("mon incomplète de la valeur...") pour éviter la largeur/sync différence.
Fondamentalement, kendo jeux de la disposition de table de "fixe" pour les grilles à défilement (ce qui est gênant pour commencer) avec certains de nos colonnes sont beaucoup trop large. Nous avons un peu de colonnes, qui sont juste à l'indicateur d'état les icônes et je veux les mettre à seulement quelques pixels de large. Tout le reste est de l'ellipse et de la grille est également configuré pour être redimensionnables et les barres de défilement horizontale apparaît si nécessaire (voir la grille sur le portail de gestion azure pour un exemple du genre de fonctionnalité). C'est sucer une honte que de kendo prend les "deux réseaux" approche sans faire la complexité invisible pour les consommateurs
Jetez un oeil à mon dernier edit, vous pouvez obtenir ce que vous êtes après, à l'aide de l'attribut personnalisé sur en-tête et de la colonne. Il résout également votre point de vue sémantique préoccupation.
Merci @Bobby_D_ , je vais marquer ce que l'on a accepté de répondre jusqu'à présent. J'aurais préféré une solution qui n'implique pas me créer un tableau de colonnes dans le code javascript, pour chaque grille qui a besoin d'une colonne d'avoir une taille spécifique, mais cela peut être la meilleure que nous avons.
OriginalL'auteur Vojtiik
Une autre option est d'utiliser
<colgroup/>
et<col/>
éléments avec style/propriétés de la classe.OriginalL'auteur deepakjg