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.

Était-ce utile?

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]);})
        }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top