2010-07-22 6 views
1

J'ai un jqGrid en mode d'édition en ligne. Lorsque l'utilisateur appuie sur Entrée, l'enregistrement est envoyé au serveur pour être sauvegardé. Le serveur renvoie un succès: vrai ou faux que je POIGNÉE successFunc comme suit:Comment empêcher jqGrid de restaurer la ligne après l'enregistrement

function successFunc(data) { 
    d = jQuery.parseJSON(data.responseText); 
    if (!d.success) { alert(d.message); } 
    return d.success; 
} 

Ce que je voudrais est que lorsque d.success est faux, le jqGrid devrait rester en mode d'édition et non de restauration. J'ai essayé d'ajouter un appel "exit" après l'alerte. Cela fonctionne, mais les touches Echap et Entrée ne fonctionnent plus.

Est-il possible d'empêcher jqGrid de restaurer la ligne après l'enregistrement?

Merci

+0

Je suis à la recherche de la même fonctionnalité. – Kelly

Répondre

0

L'appel à saveRow prend en charge un rappel afterrestorefunc:

afterrestorefunc si elle est définie, cette fonction est appelée dans la méthode restoreRow (si la ligne n'est pas enregistré avec succès) après la restauration de la ligne . Pour cette fonction, nous passons la rowid

Ainsi, vous pouvez laisser la grille appel restoreRow puis dans votre rappel, vous pouvez appeler editRow pour forcer la grille arrière pour modifier le mode. Ce n'est pas une solution idéale, mais la transition se produira si vite que l'utilisateur ne s'en apercevra probablement pas.

+0

Merci. Mais afterrestorefunc sera également appelé lorsque l'utilisateur atteint Esc. Donc, avec Esc, il ne sortira pas du mode d'édition. – t35la

+0

Oui, mais vous pouvez utiliser une variable 'mode' pour détecter d'où elle est appelée. Initialise 'mode' à false et ne le place qu'à true dans' successFunc'. Ensuite, dans 'afterrestorefunc', appelez' editRow' si 'mode' est vrai - alors réglez immédiatement à false. Qu'est-ce que tu penses? –

+0

Problème est maintenant que les modifications sont perdues dès que je le remets en mode édition. J'ai besoin de repenser mon interface. Merci pour l'aide. – t35la