2

Is there a way in jqgrid to have an editable column that uses a select like in this colModel example:

{ 
name: 'Options', 
index: 'Options', 
width: 150, 
align: 'left', 
resizable: false,
editable: true, 
edittype: 'select', 
editoptions: { 
    value: function() { return buildSelect(); } 
},
formatter: 'select'
}

but always shows the select?

I've got this working before with checkboxes, but there doesn't seem to be a way of doing it with selects. Ideally I'd like this to work in celledit mode. Any ideas?

Nigel
  • 2,150
  • 3
  • 20
  • 22

1 Answers1

4

All is possible. I am not sure, that what you want is the best way. In the most cases I recommend to use some standard way, then your live will be easier especially after change to a new version of the control which you use.

Nevertheless you can use custom formatter (see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:custom_formatter) instead of formatter: 'select' to show the contain of a column how you as prefer. For example,

{ name: 'Options', width: 150, align: 'left', editable: true, edittype: 'select',
  editoptions: { 
    value: function() { return buildSelect(); } 
  },
  formatter: function (cellvalue, options, rowObject, action) {
    if (cellvalue === 'Yes') {
      return '<select><option value="1" selected="selected">Yes</option>' +
                     '<option value="0">No</option></select>';
    } else {
      return '<select><option value="1">Yes</option>' +
                    '<option value="0" selected="selected">No</option></select>';
    }
  }
}

can be used to display select with 'Yes' and 'No' values instead of default one current value ('Yes' or 'No'). You can also bind some function for a change handle of such select elements.

Oleg
  • 220,925
  • 34
  • 403
  • 798
  • Great stuff. Spot on. Do I still need to make the cell editable (and use editoptions) or will the grid store the selected value from the dropdown created in the custom formatter? – Nigel Jun 07 '10 at 23:07
  • The custom formatter only display the data. To be able to change the data and save changed value on the server you have to use any edit mode (cell editing / inline editing or form editing) see http://www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs#editing. – Oleg Jun 07 '10 at 23:23