jQuery EasyUI: confirmer/enregistrer datagrid d'édition en ligne
Je suis à l'aide de jquery & EasyUI pour créer une table à partir d'une base de données SQL. J'ai réussi l'une des colonnes modifiables via la modification en ligne en suivant ce tutoriel, où le possible les valeurs des cellules sont donnés par une zone de liste déroulante. J'ai un fichier php pour le updateURL et la mise à jour du contenu existant fonctionne bien.
Ma question est la suivante: jusqu'à présent, pour confirmer la modification d'une cellule (après avoir cliqué sur la cellule et sélectionnez une valeur dans la liste déroulante), l'utilisateur doit cliquer sur une autre ligne de la table pour déclencher la mise à jour du script. Si la table a une seule ligne et une seule des colonnes est modifiable, il semble y avoir aucune possibilité de confirmer le changement (par exemple, en appuyant sur entrée).
Est-il un moyen de confirmation?
Merci pour toute aide!
Mise à jour: je suis venu jusqu'ici: Dans la grille de données, la colonne qui est à éditer via la zone de liste déroulante est créé par
<th field="..." data-options="formatter:...,
editor:{type:'combobox',options:{valueField:'...',textField:'...',url:'file.php',
onSelect: function (record) {*}}}">field</th>
Je crois que j'ai besoin d'enregistrer ou de terminer le montage par l'intermédiaire d'une commande à la place de l'astérisque. ( * ). J'ai utilisé endEdit
, saveRow
, mais sans succès. C'est le bon endroit (j'ai testé avec une simple alerte), mais pas le droit de la commande/de la syntaxe.
OriginalL'auteur Bernd | 2013-02-26
Vous devez vous connecter pour publier un commentaire.
Permettez-moi de laisser ma solution ici pour Google. Testé avec la version 1.4.4
Fondamentalement, vous avez besoin de remplacer
editRow
méthode, mais EasyUI ne semble pas être très bien conçu et internes sont totalement sans-papiers. Il y a également un appel à l'cachéfocusEditor
fonction, je me suis donc retrouvé avec ce code. Il déclenchesaveRow
avec <Enter>, et vous permet d'insérer un saut de ligne dans multiligne éditeur avec <Shift> + <Enter>. J'ai aussi désactivé enregistrement en cliquant sur les autres lignes en raison des nombreuses erreurs accidentelles.OriginalL'auteur krevetka
Résolu!
Le code qui doit aller de l'astérisque est:
Espère que c'est de l'aide pour les autres, trop.
OriginalL'auteur Bernd
Pourquoi ne pas vous utiliser une barre d'outils(avec save/confirmer les boutons), attaché à la grille. Cliquez sur les boutons, vous pouvez explicitement déclencher la mise à jour des événements de la edatagrid.
Dans le lien que vous avez évoqué lui-même, vous pouvez trouver l'exemple,
http://www.jeasyui.com/tutorial/app/crud2.php
Sinon, Vous pouvez appeler la "endEdit" méthode de la grille de données de manière explicite.Dans le cas, la zone de liste déroulante est le dernier rédacteur en chef de la colonne, dans Onselect événement de zone de liste déroulante, u peut appeler endEdit.Cela va déclencher la mise à jour.
C'est ce que je veux et où je suis actuellement échouer. J'ai reçu ce jour:
<th field="..." data-options="formatter:..., editor:{type:'combobox',options:{valueField:'...',textField:'...',url:'file.php',onSelect: function (record) {*}}}">Status</th>
Et où l'astérisque. ( * ) c'est que j'ai placéendEdit
,saveRow
, mais en vain. C'est le bon endroit (je l'ai testé avec un simplealert
), mais pas le bon de commande.J'ai mis à jour la question avec les progrès réalisés jusqu'à présent. Merci pour votre aide, @Saigitha .
P. S. @Saigitha, désolé je ne peux pas upvote votre réponse, je n'ai pas assez de réputation encore. Merci quand même!
OriginalL'auteur Saigitha Vijay