-
-
Notifications
You must be signed in to change notification settings - Fork 19
SlickGrid & DataView Objects
- Grid, DataView objects through AureliaGridCreated
- Grid, DataView objects & Services via
instances
bindable
In some cases you might want a feature that is not yet available in Aurelia-Slickgrid
but exists in the original SlickGrid
, what should you do? Fear not, we got you covered. Aurelia-Slickgrid
exposes the SlickGrid Grid
and DataView
objects through Event Aggregators, these objects are created when Aurelia-Slickgrid initialize the grid (with attached()
). So if you subscribe to the Event Aggregator, you will get the SlickGrid and DataView objects and from there you can call any of the SlickGrid features.
The preferred way is now to use the AureliaGridInstance
via the instances
bindable as shown here
Since version 2.x
, we can now access the Slick Grid
& DataView
objects directly from the AureliaGridInstance
through the on-aurelia-grid-created
Event Dispatch, for example:
<span id="radioAutoEdit">
<label class="radio-inline control-label" for="radioTrue">
<input type="radio" name="inlineRadioOptions" id="radioTrue" checked value.bind="isAutoEdit" click.delegate="setAutoEdit(true)"> ON (single-click)
</label>
<label class="radio-inline control-label" for="radioFalse">
<input type="radio" name="inlineRadioOptions" id="radioFalse" value.bind="isAutoEdit" click.delegate="setAutoEdit(false)"> OFF (double-click)
</label>
</span>
<aurelia-slickgrid
grid-id="grid1"
column-definitions.bind="columnDefinitions"
grid-options.bind="gridOptions"
dataset.bind="dataset"
on-aurelia-grid-created.delegate="aureliaGridReady($event.detail)">
</aurelia-slickgrid>
import { AureliaGridInstance, Column, GridOption } from 'aurelia-slickgrid';
export class MyApp {
aureliaGrid: AureliaGridInstance;
columnDefinitions: Column[];
gridOptions: GridOption;
dataset: any[];
isAutoEdit = true;
gridObj: SlickGrid;
dataViewObj: SlickDataView;
aureliaGridReady(aureliaGrid: AureliaGridInstance) {
this.aureliaGrid = aureliaGrid;
// the Aurelia Grid Instance exposes both Slick Grid & DataView objects
this.gridObj = aureliaGrid.slickGrid;
this.dataViewObj = aureliaGrid.dataView;
}
/** Change dynamically `autoEdit` grid options */
setAutoEdit(isAutoEdit) {
this.isAutoEdit = isAutoEdit;
this.gridObj.setOptions({ autoEdit: isAutoEdit }); // change the grid option dynamically
return true;
}
collapseAllGroups() {
this.dataviewObj.collapseAllGroups();
}
expandAllGroups() {
this.dataviewObj.expandAllGroups();
}
}
You could also get all the Service instances via the new instances
bindable property
<aurelia-slickgrid grid-id="grid19"
column-definitions.bind="columnDefinitions"
grid-options.bind="gridOptions"
dataset.bind="dataset"
extensions.bind="extensions"
instances.bind="aureliaGrid">
</aurelia-slickgrid>
import { AureliaGridInstance, Column, GridOption } from 'aurelia-slickgrid';
export class MyApp {
aureliaGrid: AureliaGridInstance;
/** Change dynamically `autoEdit` grid options */
setAutoEdit(isAutoEdit) {
this.isAutoEdit = isAutoEdit;
this.aureliaGrid.slickGrid.setOptions({ autoEdit: isAutoEdit }); // change the grid option dynamically
return true;
}
}
You have access to all original SlickGrid events which you can subscribe, for more info refer to the Wiki - Grid & DataView Events
There's already all the necessary information on how to use this on the Wiki - Grid & DataView Events page, so I suggest you to head over to that Wiki page on how to use the SlickGrid
and DataView
objects
Contents
- Aurelia-Slickgrid Wiki
- Installation
- Styling
- Interfaces/Models
- Testing Patterns
- Column Functionalities
- Global Grid Options
- Localization
- Events
- Grid Functionalities
- Auto-Resize / Resizer Service
- Resize by Cell Content
- Add/Delete/Update or Highlight item
- Dynamically Change Row CSS Classes
- Column Picker
- Composite Editor Modal
- Context Menu
- Custom Tooltip
- Excel Copy Buffer
- Export to Excel
- Export to File (CSV/Txt)
- Grid Menu
- Grid State & Presets
- Grouping & Aggregators
- Header Menu & Header Buttons
- Header Title Grouping
- Pinning (frozen) of Columns/Rows
- Row Colspan
- Row Detail
- Row Selection
- Tree Data Grid
- SlickGrid & DataView objects
- Addons (controls/plugins)
- Backend Services