jqGrid multiselect - limiter la sélection de la ligne uniquement à l'aide de la case à cocher
Bonjour, je suis en train de travailler sur un jqGrid qui ont la multisélection active.
J'ai besoin de limiter la sélection de la ligne uniquement à l'aide de la multisel boîte, pas en cliquant un peu partout sur la ligne.
C'est parce que j'ai besoin de faire une action en cliquant sur des liens sur certaines cellules, et que je ne modifie pas la actif multisélection.
J'ai essayé de définir le multiboxonly bien, mais ce n'est pas ce dont j'ai besoin.
Je n'ai pas trouver autre chose pour personnaliser cette fonction de la grille.
OriginalL'auteur Irvin Dominin | 2011-10-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez contrôler cliquez sur la ligne seront sélectionnés à l'égard de votre personnalisé beforeSelectRow gestionnaire d'événement. Si le gestionnaire de retourner la valeur true, la ligne sera sélectionnée. Si vous retourne la valeur false, la ligne sera pas sélectionné.
Le deuxième paramètre de
beforeSelectRow
est objet de l'événement, e.cible est l'élément du DOM qui a été cliqué. Vous pouvez obtenir de la cellule (<td>
) dans lequel le clic fait avec$(e.target).closest('td')
. Ensuite, vous pouvez utiliser $.jgrid.getCellIndex pour obtenir l'index de la cellule insido de la ligne. L'indice dans lecolModel
doit pointer vers le 'cb' colonne qui contient les cases à cocher. Ainsi, le code pourrait être la suivante:Le correspondant de démonstration, vous pouvez voir ici.
Dominin: Vous êtes les bienvenus!
Très joli, mais il cesse de l'onSelectRow de feu. Des suggestions pour garder la ligne de sélection (c'est à dire jaune, etc.) mais aussi de n'activer les multiples sélectionnez en cliquant sur la case à cocher.
Désolé, mais je ne suis pas sûr de ce que tu veux dire. Si vous retournez
false
debeforeSelectRow
vous arrêter de sélection et deonSelectRow
n'étant pas appelé. Si vous retourneztrue
il sera appelé. Si vous avez le plein contrôle sur la sélection de la ligne. Dans répondre vous trouverez des démos qui montrent comment certains multiselect options œuvres.Merci, multiboxonly: vrai a la solution
OriginalL'auteur Oleg
Je voudrais suggérer une solution plus facile:
OriginalL'auteur Mookie
Quand multiselect est définie sur true, en cliquant n'importe où sur une ligne sélectionne cette ligne, quand multiboxonly est également définie sur true, la multisélection est effectué seulement lorsque la case est cliqué.
Donc, la réponse serait:
OriginalL'auteur rhemaxos