You can create a custom command add it to the Spread's commandManager.
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
Full Code for completeness:
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
var dv1 = new GC.Spread.Sheets.DataValidation.createListValidator('Fruit,Vegetable,Food');
dv1.inputTitle('Please choose a category:');
dv1.inputMessage('Fruit, Vegetable, Food');
sheet.setDataValidator(0, 1, dv1);
sheet.setDataValidator(1, 1, dv1);
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
Navigate to cell B1 or B2 and press Alt+Down.