Tornar uma coluna uma caixa de seleção

Carrego uma grade com uma solicitação de banco de dados (em PHP com CodeIgniter abd jqgrid helper). Não tenho nenhum problema para exibir uma boa grade com meus dados.

Quero exibir uma nova coluna com caixas de seleção para escolher uma ou várias linhas.

É impossível adicionar uma nova coluna após o carregamento. Então, eu tento fazer o seguinte: - O colomn é adicionado ao criar a grade, - Ao criar, adiciono uma opção 'loadComplete' com uma função, - No diplaying, a função é executada. Aqui está :

function ajoutCheckBox() {
    var grille = $("#users_grid");

    // Construire les checkbox dans la colonne D
    grille.setColProp('Dest', {editable: true});
    grille.setColProp('Dest', {edittype: 'checkbox'});
    grille.setColProp('Dest', {editoptions: { value: "True:False" }});
    grille.setColProp('Dest', {formatter: "checkbox"});
    grille.setColProp('Dest', {formatoptions: { disabled: true}});



    // Insérer la valeur false dans toutes les lignes de la colonne D
    var index   = grille.jqGrid('getGridParam', '_index');

    for(i in index) {
        grille.jqGrid('setCell', i, 'Dest', 'False', {});
    }
}

Como você pode ver, o gris é chamado "#users_grid" e a coluna "Dest".

Meu problema: nada acrescenta ...

Obrigado pela ajuda !

XB

EDIT: Encontrei a seguinte solução:

A coluna de caixas de seleção é adicionada na instrução colModel,Para inicializar o valor e ativar as caixas de seleção (eles estão desativados na criação!), Eu uso um"loadComplete" função de retorno de chamada.

O código é muito simples, mas difícil de encontrar ...

A criação da grade:

loadComplete: function() { ajoutCheckBox() },
colModel:[.... {"name":"Env","index":"Env","width":30,"hidden":false,"align":"left","edittype":"checkbox","formatter":"checkbox","formatoptions":"{ disabled: false}","editable":true,"editoptions":{"editoptions":"{ value: \"True:False\",  defaultValue: \"False\" }}","size":10}}, ....]

A função de retorno de chamada:

function ajoutCheckBox() {
    var grille = $("#users_grid");
    var index = grille.jqGrid('getGridParam', '_index');

    for(i in index) { // Pour toutes les lignes du tableau
        grille.jqGrid('setCell', i, 'Env', 'False');
        $('#'+i).find("input:checkbox").removeAttr('disabled');
    }
}

Não parece otimizado, mas funciona!

questionAnswers(1)

yourAnswerToTheQuestion