We are getting closer to the final Ext.NET 4 release – the Beta is now available!
The main focus of the Beta release was to include the new Spreadsheet Selection Model component. Several important defects reported by the Community during the Preview release have been fixed too. All closed issues can be reviewed at GitHub.
Spreadsheet Selection Model
The new SpreadsheetSelectionModel component has been incorporated into Ext.NET. The related GitHub issue – #635.
The SpreadsheetSelectionModel component enables selecting data in GridPanels in a spreadsheet-like manner. Converting a GripPanel into a Spreadsheet is as easy as adding SpreadsheetSelectionModel to
<ext:GridPanel runat="server"> <SelectionModel> <ext:SpreadsheetSelectionModel runat="server" /> </SelectionModel> </ext:GridPanel>
After adding the SelectionModel, users will be able to select either Rows, Columns or Cells:
The best way to explore the new SpreadsheetSelectionModel functionality is to review the examples. The six dedicated examples have been added to the Examples Explorer. We intentionally made the examples relatively simple. Each example (except the Overview one) is focused on one feature. The Ext JS docs are also a good source of information.
A short list of supported features include:
- Single / Range / Multiple individual row selection
- Single / Range cell selection
- Column selection by click selecting column headers
- Select / deselect all by clicking in the top-left, header
- Adds row number column to enable row selection
- Optionally you can enable row selection using checkboxes
- Selection extensibility using a drag gesture
- Copy/paste to system clipboard using Ctrl+C, Ctrl+X and Ctrl+V. Requires the Clipboard plugin.
- Propagating values from the selection into the extension area. Requires the SelectionReplicator plugin.
Often, Ext.NET has some additional functionality on top of underlying Ext JS components. That is the case with a SpreadsheetSelectionModel as well. The following features implemented in Ext.NET have extended the functionality of the pure Ext JS component:
- Ext JS methods API has been enhanced with convenient ways to select/deselect programmatically. Helpful for the server side API.
- Implemented a way to set up initial selection – either Rows, Columns or Cells
- Implemented a mechanism to submit selected data to server
There is also a new Clipboard plugin that enables copy-paste operations between your GridPanel and other applications running outside the browser, such as Microsoft Excel. This enables the users to use Ctrl+C, Ctrl+X and Ctrl+V (or respective Command+ on Mac). The users can copy-paste either way: inside a GridPanel itself, from a GridPanel to an external application (e.g. Microsoft Excel) and the reverse – from an external application to a GridPanel. The Clipboard plugin uses the system clipboard.
To enable all this new Clipboard functionality you only need to add a plugin for your GridPanel:
<ext:GridPanel runat="server"> <SelectionModel> <ext:SpreadsheetSelectionModel runat="server" /> </SelectionModel> <Plugins> <ext:Clipboard runat="server" /> </Plugins> </ext:GridPanel>
SpreadsheetSelectionModel doesn’t support selecting of discontiguous cells. Only adjacent cells can be selected. As well, the Model does not support selecting Rows, Columns and Cells at the same time. Only one type selection at a time is supported. For example, you cannot select Columns and Rows at the same time.
Technical support questions are best asked in the forums. The public discussion may help others in the future, and allow the community to participate.
If you face any issues, then dedicated bug reports would be a great help for us to fix them before the Ext.NET 4.0.0-rc release.
We continue to work hard on Ext.NET 4. Our next planned release will be Ext.NET 4.0.0-rc. The 4.0.0-rc build will be the final pre-release version before Ext.NET 4.0.0 official is released.