Si vous voyez une démonstration de JQGRID: P>
http://www.trirand.com/blog/jqgrid/jqgrid.html p>
Section: Avancé -> Multiselect P>
Vous verrez que la case à cocher cochée n'est pas persistante lorsque je passe à la page suivante et Retour à la page précédente à nouveau .. p>
Comment le rendre persist? P>
C'est mon scénario, dans mes applications, il existe une fonctionnalité de groupe où je peux Ajoutez plusieurs clients, j'utilise JQGrid pour afficher des milliers de clients. P>
Je veux vérifier chaque client que je veux, puis soumettre ce client sélectionné et l'ajouter au groupe spécifié .. p>
Comment puis-je faire cela? (faire JQGrid, multisélectionner persistez?) P>
merci. p>
6 Réponses :
Regardez la liste des événements ici http: //www.trirand. com / jqgridwiki / doku.php? id = wiki: événements p>
La logique est: Chaque fois que l'événement "OnPinging" est tiré, vous devez itération à chaque rangée et stocker l'identifiant unique de chaque ligne à un tableau, également itérer via votre tableau d'identité et cochez la totalité de la boîte de sélection à chaque fois que "Overiping" est tiré. < / p>
Merci d'avoir répondu. Je résout déjà les problèmes avec l'événement OnSelectrow et GridComplet décrit sur la référence 2 sur les pages suivantes: wiki.Opententhinklabs.com/products_and_services/.../a>
I Définissez les trois options suivantes dans l'appel code> jQgrid code> avec ces fonctions: Mes fonctions ressemblent à ceci: P> function HandleSelectedIds()
{
if (SELECTEDIDS != null)
{
currentGridIds = new Array();
currentGridIds = $("#lookupControl").getDataIDs();
//Make Selection
for (var e = 0; e < currentGridIds.length; e++)
for (var i = 0; i < SELECTEDIDS.length; i++)
if (SELECTEDIDS[i] == currentGridIds[e])
jQuery("#lookupControl").setSelection(SELECTEDIDS[i], false);
// TODO: Some logic on if all the rows on the current page are selected, then make sure to check the "Select All" checkbox.
//var selectedIds = $("#lookupControl").getGridParam('selarrrow');
}
}
Aucun moyen direct de conserver la valeur de la case à cocher via JQGrid, nous pouvons plutôt créer une nouvelle colonne pour conserver la valeur de la case à cocher. Veuillez consulter la démo dans la liaison ci-dessous http://jsfiddle.net/vasece/clv4m/ p>
Ceci est assez simple à utiliser avec les événements de la grilleComplet et d'ONPAGING plus la méthode JQuery .Data (). C'est beaucoup plus simple que beaucoup de choses que j'ai vues flottantes autour du filet, alors je pensais que je le partagerais. Le sélecteur de ma grille est '#employerolegrid'.
Cela fonctionne principalement, mais semble avoir un bug lorsqu'il retourne une page.
Modifier la fonction Overiping sur: OnPinging: Fonction (A) {var pagerid = this.p.pager.substr (1); // ID de papier ger comme "pager" var pageValue = $ (entrée.ui-pg-entrée ', "#pg_" + $ .jgrid.jqid (pagerid)). Val (); var saveelectedrows = $ (this) .getGridParam ('Selarrrow'); // stocke toutes les lignes sélectionnées $ (Ceci) .Data (pageValue.tostring (), SavesElementRows); }, code>
Qu'est-ce que loadroletypes () code>?
Fonctionne parfaite après une petite correction. Dans la fonction de pagination, nous n'avons pas besoin d'un de moins. Vérifiez ci-dessous: ONPAGNANT: Fonction () {Var SaveselecteLesRows = $ (this) .gegridparam ('Selarrrow'); var page = $ (this) .getgridparam ('Page'); // stocke toutes les lignes sélectionnées $ (ceci) .DATA (page.tostring (), SavesElementRows); }
Ma solution: (Définir la variable Current_Page et définissez dans l'événement LOADDEFORESEND) car
function getSelectedValues(){
var saveSelectedRows = $("#YourGrid").getGridParam('selarrrow');
$("#YourGrid").data(current_page, saveSelectedRows);
var retrieveSelectedRows = $("#YourGrid").data();
var arr_values = new Array();
if (retrieveSelectedRows) {
$.each(retrieveSelectedRows, function (index, value) {
$.each(value, function (index, sub_value) {
if(typeof(sub_value)=='string')
arr_values.push(sub_value);
});
});
}
return arr_values;
}
J'ai trouvé ceci:
onSelectRow: function (id) {
var p = this.p, item = p.data[p._index[id]];
if (typeof (item.cb) === 'undefined') {
item.cb = true;
} else {
item.cb = !item.cb;
}
},
loadComplete: function () {
var p = this.p, data = p.data, item, index = p._index, rowid;
for (rowid in index) {
if (index.hasOwnProperty(rowid)) {
item = data[index[rowid]];
if (typeof (item.cb) === 'boolean' && item.cb) {
$(this).jqGrid('setSelection', rowid, false);
}
}
}
},