jqGrid tableToGrid paramètre « options »
Question
base
Salut à tous, je voir la méthode tableToGrid (par Peter Romianowski) défini comme tableToGrid(selector, options)
sur le wiki jqGrid, mais ne trouve nulle part qui a la documentation du options
Quelqu'un sait-il sur ces produits ou où les trouver? EDIT: Merci Oleg, résolu
Plus
Qu'est-ce que Im en train d'essayer de faire est le jqGrid résultant envelopper dans un form
, qui présentera les valeurs checkbox
qui sont dans une colonne de la table. Mon problème est que la méthode de tableToGrid
semble enlever la propriété name
des éléments checkbox
et, par conséquent, ils ne sont pas soumis au poste de formulaire.
La solution 2
RÉSOLU
La méthode jqGrid tableToGrid trouvera la valeur des cases à cocher dans le tableau d'origine et mettre en œuvre automatiquement l'option multiSelect: true
sur le résultat jqGrid, montrant intrinsèques des cases à cocher. Pour obtenir une liste des ID de lignes sélectionnées, il suffit d'appeler
$('#grid').getGridParam('selarrrow')
Autres conseils
Comme vous pouvez le lire sur http: //www.trirand. ? com / jqgridwiki / doku.php id = wiki: table_to_jqgrid le paramètre options de la méthode de tableToGrid
est rien de plus que les options du jqGrid que vous créez (voir http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options )
Si j'undesnand votre problème principal carrect, vous avez des données reçues du serveur comme une réponse sur le formulaire soumis. Et vous voulez placer ces données dans une grille. Pour cela, vous pouvez utiliser de manière plus directe avec l'utilisation de datatype: 'local'
jqGrid. Voici un exemple:
var grid = jQuery('#list').jqGrid({
caption: 'Testclusters',
height: 'auto',
gridview: true,
rownumbers: true,
sortable: true,
datatype: 'local',
viewrecords: true,
pager: '#pager',
pgbuttons: false,
pginput: false,
rownumbers: true,
colNames: ['Name', 'Testtiefe', 'Std', 'FachlicheTests', 'RowVersion'],
colModel: [
{ name: 'Name', index: 'Name', width: 120 },
{ name: 'TesttiefeName', width: 180 },
{ name: 'Std', width: 21, formatter: 'checkbox', align: 'center' },
{ name: 'IsFachlicheTests', width: 21, formatter: 'checkbox', align: 'center' },
{ name: 'RowVersion', width: 50, hidden: true }
]
}).navGrid('#pager', { edit: false, add: false, del: false, refresh: true, view: false, search: false })
.navButtonAdd('#pager', { caption: "", buttonicon: "ui-icon-calculator", title: "choose columns",
onClickButton: function() {
jQuery('#list').jqGrid('columnChooser');
}
});
grid.jqGrid('gridResize');
var myData = [
{ Name: "VIA XP", TesttiefeName: "Alle SW-Produkte", Std:true, IsFachlicheTests:false, RowVersion: "20FC31" },
{ Name: "KUBUS", TesttiefeName: "Alle SW-Produkte", Std:false, IsFachlicheTests:true, RowVersion: "20FC32" }
];
for (var i = 0; i <= myData.length; i++) {
grid.addRowData(i + 1, myData[i]);
}
Tout d'abord, vous créez un jqGrid vide puis le remplir en ce qui concerne la méthode de addRowData
.
En outre, si vous avez beaucoup de cases à cocher intérieur jqGrid, il peut être intéressant pour vous de regarder mon exemple texte vertical à l'intérieur des en-têtes de table à l'aide d'une bibliothèque SVG basé sur JavaScript et voir les résultats sur http://www.ok-soft-gmbh.com/VerticalHeaders/TestFixedO1.htm .
Changer largeur de colonne pour un nombre quelconque de colonnes
Dans ce cas, après la jqGrid se construire vous pouvez simplement aller à la table se produit et modifier manuellement toutes les largeurs de colonnes d'en-tête de colonne et les données respectives sans redressant un code fastidieux.
var tabColWidths ='70px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px|125px';
function reDefineColWidth(){
var widthsArr = tabColWidths.split('|');
for(var j=0; j < widthsArr.length ; j++ ){
$('.ui-jqgrid-labels > th:eq('+j+')').css('width',widthsArr[j]);
$('#grid tr').find('td:eq('+j+')').each(function(){$(this).css('width',widthsArr[j]);})
}
}