My users need to select cells rather than entire rows, as they come from an MS Access background.
Posted on:03 Feb 2020 23:04
Some thoughts on selection and copy from the grid are as follows:
It would be good to have an extra option in GridSelectionMode for "MultiCell" or "CellRange" etc.
In it's simplest form, this would allow a user to select grid location B3 and then Shift + D6 to highlight the range B3:D6. (Obviously these are grid column/Row references)
If a grid hierarchy was implemented, it would be good if the selection mode would work if the hierarchy was collapsed, although if expanded, it shouldn't be expected to span child grids.
If Ctrl + C is pressed, copy the range to clipboard to allow pasting into Excel or other application.
The clipboard capture could be WYSIWYG. eg. if foreign Key / Template column is included in the range, just pick up whatever is shown in the cell (ie. not the underlying ID). A possible exception to this is checkboxes. It would be good to return true / false or 0 / 1 in that circumstance.
In terms of pasting into the grid, following are some thoughts:
Once the desired grid contents are in Clipboard, user should select the desired paste range in the Grid (eg. B3:D6). Even if the clipboard range is bigger than this, it should only paste within that range (possible exception for new rows - see subsequent point). If the clipboard range is smaller than the selected range, cells outside of the clipboard range should be unaffected.
It would be "nice" to be able to create new records from the clipboard, but not the end of the world if we have to create the records first.
It would be good if the paste functionality was able to parse some of the basic data types (eg. numeric, text, datetime etc.) For checkboxes, it would be good if it was possible to parse true/false or 0/1 into the Checkbox.
For more complex requirements (eg. data validation) that might take a bit of work to do in a generic sense. One option might be to just implement the basic paste functionality using a WYSIWYG philosophy that can be overridden by the developer if necessary if an OnPaste event is available.