"Disable Graphical Inputs" adds simple JavaScript functions for enabling and disabling graphical radio buttons and checkboxes:
http://www.sawtoothsoftware.com/about-us/news-and-events/sawtooth-solutions/ss33-cb/253-support/software-downloads/question-library/1739-library-disable-graphical-inputs
You can then give the grid question this code:
<script>
$(document).ready(function(){
var rowsList = $('input[name=hid_row_list_[% QuestionName() %]]').val().split(',').map(Number);
rowsList.forEach(function(row){
SSI_CustomGraphicalCheckbox(null, { name: '[% QuestionName() %]_r' + row + '_c1' }, SSI_GetValue('[% QuestionName() %]_r' + row + '_c1'));
});
})
function SSI_CustomGraphicalCheckbox(graphicalObj, inputObj, bln) {
var regex = /^[% QuestionName() %]_r([0-9]+)_c([0-9]+)$/;
var match = inputObj.name.match(regex);
if (match) {
var row = Number(match[1]);
if (bln) {
SSI_EnableGraphicalInput('[% QuestionName() %]_c2_' + row);
}
else {
if (SSI_GetValue('[% QuestionName() %]_c2') == row) {
SSI_RadioReset('[% QuestionName() %]_c2');
}
SSI_DisableGraphicalInput('[% QuestionName() %]_c2_' + row);
}
}
}
</script>