2016-11-11 3 views
0

Nous avons utilisé le CheckBoxSelectionModel dans une grille de GXT. Nous voulons avoir une case à cocher particulière à vérifier et à désactiver, c'est-à-dire que la case à cocher de CheckBoxSelectionModel sera sélectionnée et grisée, et que l'utilisateur ne pourra pas la sélectionner ou la désélectionner.Gxt: Comment désactiver la case à cocher de CheckBoxSelectionModel

CheckBoxSelectionModel sm = new CheckBoxSelectionModel<ModelData>(); 
ColumnConfig checkBoxColumn = sm.getColumn(); 
checkBoxColumn.setStyle("vertical-align: middle;"); 
checkBoxColumn.setRenderer(new GridCellRenderer<ModelData>() 
{ 
    @Override 
    public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ModelData> store, Grid<ModelData> grid) 
    { 
     // if the code property of model is 1 then select and disable it 
     if (model.get("code").equals(1)) 
     { 
      sm.select((BaseModel) model, true); 
      return "<div>&#160;</div>"; 
     } else { // others case 
      return "<div class=\"x-grid3-row-checker\">&#160;</div>"; 
     } 
    } 
}); 
columnConfigs.add(checkBoxColumn); 

Nous avons essayé le code ci-dessus de ce link suggéré, mais cela cache la case à cocher qui est pas ce que nous avions besoin.

Je ne sais pas s'il existe un moyen plus approprié de désactiver la case à cocher du CheckBoxSelectionModel?

Toute aide est appréciée.

Répondre

-1

CheckBoxSelectionModel sm possède une propriété booléenne verrouillée qui prend un argument. Donc, dans renderer, définissez la valeur que vous voulez;

DOC: True pour verrouiller le modèle de sélection. Lorsque verrouillé, tous les changements de sélection sont désactivés. @param verrouillé vrai pour verrouiller

sm.setLocked(true) ou sm.setLocked(false)