J'ai un tableau jqGrid avec des cases à cocher multi-sélection que j'ai personnalisé avec CSS et prettyCheckable.prettyCheckable sur jqGrid Multiselect
Pour personnaliser toutes les cases de ma table, je mets .prettyCheckable()
comme suit:
jQuery(document).ready(function($){
$("input[type=checkbox]").change(function() {
$(this).triggerHandler("click");
}).prettyCheckable();
});
mais cela ne fonctionne pas. Seule la première case à cocher a le style.
donc j'ai essayé d'insérer la fonction .prettyCheckable()
dans loadComplete
de jqGrid, et comme suggéré par Oleg#here, en ajoutant la classe vérifiée <a>
.
Voici mes paramètres jqGrid:
$(document).ready(function() {
$('#searchForm').ajaxForm(function() {
var _data = $('#searchForm').serialize();
$('#ResultsTable').jqGrid().setGridParam({
url: '${searchUrl}' + _data,
loadComplete: function() {
$(this).find("input.cbox").prettyCheckable();
}
}).trigger("reloadGrid")
return true;
});
jsonTable('ResultsTable', 'ResultsPager', '${searchUrl}', 'searchForm',
{id: 'code'},
['Code', 'Description', 'CF'],
[{name: 'code', index: 'code', width: 55},
{name: 'description', index: 'description', width: 90},
{name: 'CF', index: 'CF', width: 80},
function(id) {
var selRows = $(this).jqGrid('getGridParam', 'selarrrow');
$('#edit').toggle(selRows.length == 1);
$('#delete').toggle(selRows.length > 0);
$('#editForm #code').val(selRows);
$('#deleteForm #code').val(selRows);
//$("#jqg_" + $.jgrid.jqID(this.id + "_" + id)).next("a").toggleClass('checked');
},
function(aSel, selected) {
$('#edit').toggle(false);
$('#delete').toggle(selected);
if (selected) {
$('#editForm #code').val(selRows);
$('#deleteForm #code').val(selRows);
}
},
true
)
});
mais aussi avec cela ne fonctionne pas, comment puis-je résoudre ce problème?
J'ai créé une petite démo ici: jsfiddle.net/LStvX/1
Toute aide est appréciée, merci!
Quelle est la fonction 'jsonTable' ? La fonction semble faire le travail principal. Pourriez-vous inclure le code de la fonction aussi? – Oleg
Peu importe comment vous utilisez exactement 'prettyCheckable' dans votre code. Le but de stackoverflow est de partager le problème * commun * et sa solution avec d'autres. Votre code actuel contient '$ ('# searchForm'). AjaxForm (..)' par exemple. Est-ce lié à votre problème principal? N'est-il pas préférable de créer une petite démo qui ne fait que démontrer votre problème principal? Une fois le problème résolu dans la démo, vous pouvez transformer la solution en code principal. – Oleg
J'ai créé une petite démo ici: http://jsfiddle.net/LStvX/1/ –