Here is the solution that use the 'formatter' function to display a checkbox with 'true'/'false' label on the value column.
$('#pg').propertygrid({
width: 400,
data: data,
scrollbarSize: 0,
columns:[[
{field:'name',title:'Name',width:100,sortable:true},
{field:'value',title:'Value',width:100,resizable:false,
formatter:function(value,row){
if (row.name == 'FrequentBuyer'){
console.log(value)
return '<input class="pg-ck" type="checkbox" ' + (value=='true'?'checked':'') + '>' + value;
} else {
return value;
}
}
}
]],
onBeforeEdit: function(index,row){
if (row.name == 'FrequentBuyer'){
return false;
}
},
onLoadSuccess: function(){
var pg = $(this);
$(this).propertygrid('getPanel').click(function(e){
if ($(e.target).hasClass('pg-ck')){
var tr = $(e.target).closest('tr.datagrid-row');
var index = parseInt(tr.attr('datagrid-row-index'));
var row = pg.propertygrid('getRows')[index];
if (row.value == 'true'){
row.value = 'false';
} else {
row.value = 'true';
}
pg.propertygrid('refreshRow', index);
}
})
}
})
The example is also available from
http://jsfiddle.net/tuy4qnmj/