javascript change - Habillage des lignes de texte dans JqGrid




title tag (5)

Avec jQGrid 4.0, une meilleure façon de faire est d'utiliser cellattr dans colmodel comme ceci: -

colModel: [
            { name: 'ClientName', label: 'Client', index: 'ClientName', width: 150, cellattr: function (rowId, tv, rawObject, cm, rdata) { return 'style="white-space: normal;"' } },

            .... other columns

            ]

De cette façon, vous pouvez appliquer un style d'habillage à une colonne individuelle sans avoir à utiliser! Important

Pouvez-vous JqGrid des lignes de texte dans JqGrid ? J'ai jeté un coup d'œil mais je ne trouve rien.


Vous pouvez utiliser l'option cellattr colModel pour placer une classe CSS sur votre colonne, puis dans votre fichier CSS, le style white-space: normal !important; sur cette classe ...

Des classes

chaîne

Cette option permet d’ajouter des classes à la colonne. Si plus d'une classe sera utilisée, un espace doit être défini. Par exemple, classes:'class1 class2' définira class1 et class2 pour chaque cellule de cette colonne.

Dans le css de la grille, il y a une classe prédéfinie ui-ellipsis qui permet d'attacher des ellipses à une ligne particulière. Cela fonctionnera également dans FireFox.


Essayez le CSS suivant:

    .ui-jqgrid tr.jqgrow td {
        white-space: normal !important;
    }

Cela fonctionne pour moi en utilisant jqGrid 3.6.

Comme N30 l'a souligné, jqGrid 4.0 prend désormais en charge une option cellattr colModel qui permet un contrôle plus fin du retour à la ligne. De son exemple:

cellattr: function (rowId, tv, rawObject, cm, rdata) { 
    return 'style="white-space: normal;"';
}

J'ai eu ce problème pour les en-têtes et j'ai trouvé que j'avais besoin de tout cela pour le résoudre également dans IE. Notez que cela concerne les en-têtes et non les cellules. Le problème, c’est que les effets sont probablement plus importants que vous ne voudriez (comme je suis sûr que je le découvrirai plus tard), mais vous pouvez toujours affiner les sélecteurs css et / ou les faire référencer le #tableIdName ou une classe spécifique afin que vous puissiez inscrivez-vous comme vous s'il vous plaît.

.ui-jqgrid .ui-jqgrid-htable th div {
overflow: visible !important;
height: auto !important;
}

.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {
  white-space: normal !important;  
}

.ui-jqgrid .ui-th-div-ie{
  white-space: normal !important;  
}

Enfiler de l'amiante longjohns ...

Hier, mon titre avec Packt Publications, Programmation réactive avec JavaScript . Ce n'est pas vraiment un titre centré sur Node.js; Les premiers chapitres sont destinés à couvrir la théorie, et plus tard, les chapitres lourds en code couvrent la pratique. Parce que je ne pensais pas vraiment qu'il serait approprié de ne pas donner aux lecteurs un serveur Web, Node.js semblait de loin le choix évident. L'affaire était close avant même d'être ouverte.

J'aurais pu donner une très bonne idée de mon expérience avec Node.js. Au lieu de cela, j'ai été honnête à propos des points positifs et des points négatifs que j'ai rencontrés.

Permettez-moi d'inclure quelques citations pertinentes ici:

Attention: Node.js et son écosystème sont suffisamment chauds pour vous brûler gravement!

Lorsque j’étais assistante de professeur en maths, l’une des suggestions non évidentes qui m’avait été de ne pas dire à un élève que quelque chose était «facile». La raison en était quelque peu évidente rétrospectivement: si vous dites à quelqu'un quelque chose est facile, quelqu'un qui ne voit pas de solution qui pourrait finir par se sentir (encore plus) stupide, car non seulement ils ne savent pas comment résoudre le problème, mais le problème qu’ils sont trop stupides pour comprendre est facile!

Il existe des pièges qui ne font pas que gêner les utilisateurs de Python / Django, qui rechargent immédiatement la source si vous changez quelque chose. Avec Node.js, le comportement par défaut est que si vous effectuez une modification, l'ancienne version reste active jusqu'à la fin de l'année ou jusqu'à ce que vous arrêtiez et redémarriez le serveur manuellement. Ce comportement inapproprié ne fait pas qu'embêter les Pythonistes; cela irrite également les utilisateurs natifs de Node.js qui fournissent diverses solutions de contournement. La question “Rechargement automatique des fichiers dans Node.js” a, au moment de la rédaction de cet article, plus de 200 votes positifs et 19 réponses; une modification dirige l'utilisateur vers un script de nounou, node-supervisor, dont la page d'accueil est située à l' http://tinyurl.com/reactjs-node-supervisor . Ce problème offre aux nouveaux utilisateurs une grande opportunité de se sentir stupide car ils pensaient avoir résolu le problème, mais l'ancien comportement de buggy est totalement inchangé. Et il est facile d’oublier de faire rebondir le serveur; Je l'ai fait plusieurs fois. Et le message que j'aimerais transmettre est le suivant: «Non, vous n'êtes pas stupide, car ce comportement de Node.js vous a mordu dans le dos; c'est juste que les concepteurs de Node.js n'ont vu aucune raison de fournir un comportement approprié ici. Essayez de vous en sortir, peut-être en prenant un peu d'aide du superviseur de nœud ou d'une autre solution, mais s'il vous plaît, ne vous éloignez pas du sentiment que vous êtes stupide. Vous n'êtes pas celui avec le problème; le problème est dans le comportement par défaut de Node.js. ”

Cette section, après un débat, a été laissée là, précisément parce que je ne voulais pas donner l'impression «c'est facile». Je me suis coupé les mains à plusieurs reprises tout en faisant fonctionner les choses, et je ne voulais pas atténuer les difficultés et vous préparer à croire que faire fonctionner correctement Node.js et son écosystème est une tâche simple et que si ce n'est pas simple pour vous aussi, vous ne savez pas ce que vous faites. Si vous ne rencontrez pas de difficultés désagréables avec Node.js, c'est merveilleux. Si vous le faites, j'espère que vous ne partirez pas en pensant: "Je suis stupide - il doit y avoir quelque chose qui ne va pas avec moi." Vous n'êtes pas stupide si vous rencontrez de mauvaises surprises avec Node.js. Ce n'est pas toi! C'est Node.js et son écosystème!

L'annexe, que je ne voulais pas vraiment après la montée du crescendo dans les derniers chapitres et la conclusion, parle de ce que j'ai pu trouver dans l'écosystème et fournit une solution de contournement pour un littéralisme débile:

Une autre base de données qui semblait parfaitement adaptée et qui peut encore être utilisée est une implémentation côté serveur du magasin de clés-valeurs HTML5. Cette approche présente l’avantage capital d’une API que la plupart des bons développeurs frontaux comprennent suffisamment bien. C'est aussi une API que la plupart des développeurs front-end pas très bons comprennent assez bien. Mais avec le package node-localstorage, bien que l'accès en syntaxe de dictionnaire ne soit pas offert (vous voulez utiliser localStorage.setItem (clé, valeur) ou localStorage.getItem (clé), pas localStorage [clé]), la sémantique complète de localStorage est implémentée. , y compris un quota par défaut de 5 Mo. POURQUOI? Les développeurs JavaScript côté serveur doivent-ils être protégés contre eux-mêmes?

Pour les capacités de base de données côté client, un quota de 5 Mo par site Web constitue une marge de manœuvre généreuse et utile pour permettre aux développeurs de l'utiliser. Vous pouvez définir un quota beaucoup plus bas tout en offrant aux développeurs une amélioration incommensurable par rapport à la gestion des cookies. Une limite de 5 Mo ne se prête pas très rapidement au traitement Big Data côté client, mais il existe une allocation très généreuse que les développeurs ingénieux peuvent utiliser pour faire beaucoup. Mais, d’autre part, 5 Mo ne représentent pas une part particulièrement importante de la plupart des disques achetés récemment, ce qui signifie que si vous et un site Web n’êtes pas d’accord sur une utilisation raisonnable de l’espace disque, ou si certains sites sont tout simplement gigantesques, cela ne coûte pas vraiment cher. et vous ne risquez pas d’avoir un disque dur saturé à moins que votre disque dur ne soit déjà trop plein. Nous serions peut-être mieux si l'équilibre était un peu moins ou un peu plus, mais dans l'ensemble, c'est une solution décente pour remédier à la tension intrinsèque dans un contexte côté client.

Cependant, il est à noter que lorsque vous écrivez du code pour votre serveur, vous n'avez pas besoin de protection supplémentaire pour créer une base de données de plus de 5 Mo de taille. La plupart des développeurs n'auront ni besoin ni envie d'outils jouant le rôle de nourrice et les empêchant de stocker plus de 5 Mo de données côté serveur. Et le quota de 5 Mo qui constitue un bon équilibrage côté client est plutôt idiot sur un serveur Node.js. (Et, pour une base de données pour plusieurs utilisateurs telle que celle décrite dans cette annexe, il peut être souligné, légèrement douloureusement, qu'il ne s'agit pas de 5 Mo par compte d'utilisateur, sauf si vous créez une base de données distincte sur le disque pour chaque compte d'utilisateur. Cela pourrait devenir pénible si vous deveniez viral!) La documentation indique que le quota est personnalisable, mais un e-mail adressé au développeur il y a une semaine pour lui demander comment modifier le quota n'est pas répondu, de même que la question lui demandant . La seule réponse que j'ai pu trouver est dans le source Github CoffeeScript, où il est répertorié comme un second argument entier optionnel à un constructeur. C'est donc assez simple et vous pouvez spécifier un quota égal à la taille d'un disque ou d'une partition. Mais en plus du portage d'une fonctionnalité incohérente, l'auteur de l'outil n'a pas complètement respecté la convention très standard d'interprétation de 0 comme signifiant «illimité» pour une variable ou une fonction où un entier doit spécifier une limite maximale d'utilisation de certaines ressources. La meilleure chose à faire avec ce problème est probablement de spécifier que le quota est Infinity:

if (typeof localStorage === 'undefined' || localStorage === null)
  {      
  var LocalStorage = require('node-localstorage').LocalStorage;
  localStorage = new LocalStorage(__dirname + '/localStorage',
    Infinity);
  }

Échanger deux commentaires dans l'ordre:

Les gens se tiraient une balle dans le pied en utilisant constamment JavaScript dans son ensemble, et Douglas Crockford disait en substance que le langage était respectable: «JavaScript en tant que langage a de très bonnes parties et de très mauvaises parties. Voici les bonnes parties. Oubliez tout ce qu'il y a d'autre. »Peut-être que l'écosystème chaud de Node.js développera son propre « Douglas Crockford », qui dira:« L'écosystème de Node.js est un Far West codant, mais il y a de véritables joyaux à découvrir. . Voici une feuille de route. Voici les domaines à éviter à tout prix. Voici les zones avec les rémunérations les plus riches que l'on puisse trouver dans TOUT langage ou environnement. "

Peut-être que quelqu'un d'autre peut prendre ces mots comme un défi, suivre l'exemple de Crockford et écrire «les bonnes parties» et / ou «les meilleures parties» pour Node.js et son écosystème. J'en achèterais un exemplaire!

Et étant donné le degré d’enthousiasme et le peu d’heures de travail consacrées à tous les projets, il pourrait être justifié, dans un an, deux ou trois ans, d’atténuer de manière décisive toute remarque sur un écosystème immature faite au moment de la rédaction de ce document. Dans cinq ans, il peut être logique de dire: «L’écosystème 2015 de Node.js comptait plusieurs champs de mines. L’écosystème 2020 de Node.js comporte de nombreux paradis. ”





javascript jquery jqgrid