ZingGrid Object Methods
This is a comprehensive list of available functionality on the global window.ZingGrid
object. It is redundant to define window
, so we will call this the ZingGrid
object.
registerAdapter()
You use the registerAdapter()
method to define how to hook up a data source into your project. If you have your own standardized endpoints, this is very useful as it's a way for us to provide an ES6 style import mechanism and pattern for building custom data sources.
Check out the docs on <zg-param>
attributes to get a full list of available adapter options here.
Function Definition
ZingGrid.registerAdapter(sType, oOptions)
Name | Type | Optional | Description |
---|---|---|---|
sType | String | false | The string name for the adapter |
oOptions | Object | false |
Option list of of adapter variables you want to define. You can define ANYzg-param value here.
|
HTML before registerAdapter()
<zing-grid editor caption="Movies" page-size="10" infinite height="100px"> <zg-data src="https://zinggrid-examples.firebaseio.com/movies/"> <zg-param name="startAtKey" value="startAt"></zg-param> <zg-param name="limitToKey" value="limitToFirst"></zg-param> <zg-param name="sortByKey" value="orderBy"></zg-param> <zg-param name="searchKey" value="equalTo"></zg-param> <zg-param name="startAtValue" value="true"></zg-param> <zg-param name="addValueQuotes" value="true"></zg-param> <zg-param name="sortBy" value="title"></zg-param> </zg-data> </zing-grid>
HTML after registerAdapter()
<zing-grid editor caption="Movies" page-size="10" infinite height="100px"> <zg-data src="https://zinggrid-examples.firebaseio.com/movies/" adapter="myCustomAdapter"></zg-data> </zing-grid>
JavaScript
const adapterOptions = { limitToKey: 'limitToFirst', startAtKey: 'startAt', sortByKey: 'orderBy', startAtValue: true, sortBy: '"title"', }; ZingGrid.registerAdapter('myCustomAdapter', adapterOptions);
registerAdapter() Grid
Here is a complete grid which calls the registerAdapter()
method:
registerCellType()
You use the registerCellType()
method to create and assign a custom column type.
Function Definition
ZingGrid.registerCellType(sType, oOptions)
Name | Type | Optional | Description |
---|---|---|---|
sType | String | false | The name of the cell type you want to define |
oOptions | Object | false | An object to define the renderer and/or editor for the cell type |
HTML
<zg-column index="col" type="upper" header="College"></zg-column>
JavaScript
// renderer function for cell function upperRenderer(mRawData, cellRef, $cell) { return mRawData.toUpperCase(); } // hooks for editor let editor = { init($cell, editorField) { let oDOMInput = document.createElement('input'); oDOMInput.type = 'text'; oDOMInput.autoComplete = 'off'; oDOMInput.ariaInvalid = false; editorField.appendChild(oDOMInput); }, onOpen($cell, editorField, mData) { let oDOMInput = editorField.querySelector('input'); if (!mData) { mData = editorField.value || ''; } oDOMInput.value = String(mData); }, onClose(editorField) { return 'Edited: ' + editorField.querySelector('input').value; }, }; ZingGrid.registerCellType('upper', { editor: editor, renderer: upperRenderer, });
registerCellType() Grid
Here is a complete grid which calls the registerCellType()
method:
registerClient()
You use the registerClient()
method to register a third party client to make it available to ZingGrid for JS adapter calls.
Currently configured for supabaseJS adapter.
Function Definition
ZingGrid.registerClient(oClient, oScope)
Name | Type | Optional | Description |
---|---|---|---|
oClient | Object | false | The client that will be used for the adapter calls |
oScope | Object | true | Scope of the client |
HTML
<zing-grid> <zg-data adapter="supabaseJS"> <zg-param name="dataTable" value="employee_list"></zg-param> </zg-data> </zing-grid>
JavaScript
const supabaseClient = supabase.createClient(SUPABASE_URL, SUPABASE_KEY); ZingGrid.registerClient(supabaseClient);
registerClient() Grid
Here is a complete grid which calls the registerClient()
method:
registerCustomFilterMethod()
The registerCustomFilterMethod()
method registers a custom filter method. The custom filter method can then be added to the list of filter conditions that a column can be filtered by.
Function Definition
ZingGrid.registerCustomFilterMethod(key, oCustomFilterObj, oScope);
Name | Type | Optional | Description |
---|---|---|---|
key | String | false | The key of the custom filter method. This keys will be used to add to `getConditions()` or in `[filter-conditions]` |
oCustomFilterObj | Object | false | Object containing the custom filter. It contains three properties: - title: What displays in the conditions selectbox - fieldCount: Number of text fields to display for this condition (0-2) - showMatchCase: Boolean indicating if match case checkbox should be displayed. Default is true. - filterMethod: Points to the method to call when filter is run. Filter method will be passed `oConfig` object that contains: - dataVal: Value from the grid's data - [val1]: Value of first text field (if present) - [val2]: Value of second text field (if present) - matchCase: Boolean indicating if user selectd the match base checkbox |
oScope | Object | true | Scope of the filter method |
HTML
<zing-grid filter filter-conditions="customCondition, break, default">
JavaScript
let customCondition = { title: "Starts With M", fieldCount: 0, filterMethod: (oConfig) => { return oConfig.dataVal.indexOf('M') === 0; } }; ZingGrid.registerCustomFilterMethod('customCondition', customCondition);
registerCustomFilterMethod() Grid
Here is a complete grid which calls the registerCustomFilterMethod()
method:
registerEditor()
The registerEditor()
method is used to create and assign a custom editor to the grid.
Function Definition
ZingGrid.registerEditor(oConfig, sName, oScope);
Name | Type | Optional | Description |
---|---|---|---|
oConfig | Object | false | The object containing editor life cycle hooks for cell editing (`init`, `onOpen`, `onClose`) |
sName | String | false | String name of the custom editor |
oScope | Object | true | Scope of the editor |
HTML
<zg-column index="col" editor="prependEdited"></zg-column>
JavaScript
// hooks for editor let editor = { init($cell, editorField) { let oDOMInput = document.createElement('input'); oDOMInput.type = 'text'; oDOMInput.autoComplete = 'off'; oDOMInput.ariaInvalid = false; editorField.appendChild(oDOMInput); }, onOpen($cell, editorField, mData) { let oDOMInput = editorField.querySelector('input'); if (!mData) { mData = editorField.value || ''; } oDOMInput.value = String(mData); }, onClose(editorField) { return 'Edited: ' + editorField.querySelector('input').value; }, }; ZingGrid.registerEditor(editor, 'prependEdited');
registerEditor() Grid
Here is a complete grid which calls the registerEditor()
method:
registerFilterer()
The registerFilterer()
method registers the life cycle hooks for filterer.
Function Definition
ZingGrid.registerFilterer(fnMethod, sName, oScope);
Name | Type | Optional | Description |
---|---|---|---|
oConfig | Object | false | Object containing filterer life cycle hooks (`afterInit`) |
sName | String | false | String name of the custom filterer |
oScope | Object | true | Scope of the filterer |
HTML
<zg-column index="last" filterer="lettersOnly"></zg-column>
Javascript
let customFilter = { afterInit(oDOMFilter) { let oDOMInput = oDOMFilter.querySelector('input'); oDOMInput.addEventListener('keypress', (e) => { if (!/^[a-z]$/i.test(e.key)) e.preventDefault(); }); }, }; ZingGrid.registerFilterer(customFilter, 'lettersOnly');
registerFilterer() Grid
Here is a complete grid which calls the registerFilterer()
method:
registerMethod()
You use the registerMethod()
method to assign an alias to a single method outside the window scope, which will be found and assigned a scope reference to this
.
Function Definition
ZingGrid.registerMethod(fnMethod, sName, oScope)
Name | Type | Optional | Description |
---|---|---|---|
fnMethod | Function | false | The method that you want to expose to ZingGrid |
sName | String | true | The name to refer to the method. If the method is not anonymous, the name will default to the name of the method. If it is anonymous, a name must be set. Whatever is set here is how you should refer to the method in the grid. |
oScope | Object | true |
The scope of the method. When the method is called, this will be set to the scope value.
|
HTML
<zg-column index="high" type="currency" cell-class="f1"></zg-column> <zg-column index="low" type="currency" cell-class="f2"></zg-column>
JavaScript
const namespace1 = { // global vars for highlight min/max values gHigh: -1, gLow: Number.MAX_SAFE_INTEGER, // highlight cell with highest value in high column _highlightHigh: function(high, cellDOMRef, cellRef) { if (high == Number(this.gHigh)) return 'highlight'; }, // highlight cell with lowest value in low column _highlightLow: function(low, cellDOMRef, cellRef) { if (low == Number(this.gLow)) return 'highlight'; }, }; // register methods to alias "f1" and "f2" where "this" references the // namespace1 scope as well ZingGrid.registerMethod(namespace1._highlightHigh, 'f1', namespace1); ZingGrid.registerMethod(namespace1._highlightLow, 'f2', namespace1);
registerMethod() Grid
Here is a complete grid which calls the registerMethod()
method:
registerNamespace()
You use the registerNamespace()
method to assign a namespace alias so that all methods outside the window scope can be found, and assigned a scope reference to this
. Once a namespace is registered, the methods within the namespace will be accessible to ZingGrid without having to call ZingGrid.registerMethod
.
Function Definition
ZingGrid.registerNamespace(oNamespace, sName, oScope)
Name | Type | Optional | Description |
---|---|---|---|
oNamespace | Function | false | The namespace that you want to expose to ZingGrid |
sName | String | true | The name to reference the namespace |
oScope | Object | true | The scope of the namespace. When a method within the namespace is called, `this` will be set to the `scope` value. Defaults to the namespace itself. |
HTML
<zg-column index="low" type="currency" cell-class="n1._highlightLow"></zg-column>
JavaScript
const namespace1 = { // global vars for highlight min/max values gHigh: -1, gLow: Number.MAX_SAFE_INTEGER, // highlight cell with lowest value in low column _highlightLow: function(low, cellDOMRef, cellRef) { if (low == Number(this.gLow)) return 'highlight'; }, }; // register namespace to alias "n1" where "this" references the // namespace1 scope as well ZingGrid.registerNamespace(namespace1, 'n1', namespace1);
registerNamespace() Grid
Here is a complete grid which calls the registerNamespace()
method:
registerValidator()
To register life cycle hooks for cell validation, use registerValidator()
.
Function Defintiion
ZingGrid.registerValidator(oValidator, sName, oScope);
Name | Type | Optional | Description |
---|---|---|---|
oValidator | Object | false | Object of validator life cycle hooks to expose to the grid |
sName | String | true | The name to refer to the validator. |
oScope | Object | true | Scope of the validator |
HTML
<zg-column index="first" validator="customValidator"></zg-column>
JavaScript
let customValidator = function(text) { return text.includes('testing'); }; ZingGrid.registerValidator(customValidator, 'customValidator');
registerValidator() Grid
Here is a complete grid which calls the registerValidator()
method:
customizeDialog()
Use customizeDialog()
to customize the dialog for all instances of ZIngGrid.
Function Defintiion
ZingGrid.customizeDialog(type, config);
Name | Type | Optional | Description |
---|---|---|---|
type | String | false | Type of dialog to customize. If set to `null`, the config will apply to all dialogs. The options are: field-update, record-create, record-delete, record-info, record-update, view-error, view-info, view-success, view-warn, zg-version. |
config | Object | false | Options for data retrieval. The options are: - cancel: Text for cancel button - confirm: Text for confirm button - label: Label to display on the dialog |
HTML
<zing-grid editor="modal">
JavaScript
ZingGrid.customizeDialog('field-udpate', { cancel: 'CANCEL ACTION', confirm: 'CONFIRM ACTION', label: 'DIALOG ACTIONS' });
customizeDialog() Grid
Here is a complete grid which calls the customizeDialog()
method:
formatDate()
Use customizeDialog()
to customize the dialog for all instances of ZIngGrid.
Function Defintiion
ZingGrid.customizeDialog(type, config);
Name | Type | Optional | Description |
---|---|---|---|
type | String | false | Type of dialog to customize. If set to `null`, the config will apply to all dialogs. The options are: field-update, record-create, record-delete, record-info, record-update, view-error, view-info, view-success, view-warn, zg-version. |
config | Object | false | Options for data retrieval. The options are: - cancel: Text for cancel button - confirm: Text for confirm button - label: Label to display on the dialog |
HTML
<zing-grid editor="modal">
JavaScript
ZingGrid.customizeDialog('field-udpate', { cancel: 'CANCEL ACTION', confirm: 'CONFIRM ACTION', label: 'DIALOG ACTIONS' });
customizeDialog() Grid
Here is a complete grid which calls the customizeDialog()
method:
fromNow()
The fromNow()
formats a Date
object in "from now" format.
Function Defintiion
ZingGrid.fromNow(date, raw, lang);
Name | Type | Optional | Description |
---|---|---|---|
date | SDate | false | The `Date` to format |
raw | Boolean | false | Indicates if we should include "ago/to" to indicate past/future |
lang | String | true | The language to use for formatting |
HTML
<zg-column index="date" type="date" renderer="renderDate"></zg-column>
JavaScript
let renderDate = function(date) { return `${ZingGrid.fromNow(date, true)} too late`; }; ZingGrid.registerMethod(renderDate, 'renderDate');
fromNow() Grid
Here is a complete grid which calls the fromNow()
method:
Use customizeDialog()
to customize the dialog for all instances of ZIngGrid.
Function Defintiion
ZingGrid.customizeDialog(type, config);
Name | Type | Optional | Description |
---|---|---|---|
type | String | false | Type of dialog to customize. If set to `null`, the config will apply to all dialogs. The options are: field-update, record-create, record-delete, record-info, record-update, view-error, view-info, view-success, view-warn, zg-version. |
config | Object | false | Options for data retrieval. The options are: - cancel: Text for cancel button - confirm: Text for confirm button - label: Label to display on the dialog |
HTML
<zing-grid editor="modal">
JavaScript
ZingGrid.customizeDialog('field-udpate', { cancel: 'CANCEL ACTION', confirm: 'CONFIRM ACTION', label: 'DIALOG ACTIONS' });
customizeDialog() Grid
Here is a complete grid which calls the customizeDialog()
method:
searchIsTable()
Use searchIsTable()
method to search for table element(s) with the [is="zing-grid"]
attribute to insert the <zing-grid>
. This method shoud only be used when table[is="zing-grid"]
is added after the Document
has been loaded.
Function Defintiion
ZingGrid.searchIsTable();
HTML
<table is="zing-grid"></table>
JavaScript
ZingGrid.searchIsTable();
searchIsTable() Grid
Here is a complete grid which calls the searchIsTable()
method:
setLicense()
The setLicense()
method is used to set the license and removes the watermark is the given license is valid.
Function Defintiion
ZingGrid.setLicense(aLicense, aBuildCode);
Name | Type | Optional | Description |
---|---|---|---|
aLicense | String Array | false | List of license keys |
aBuildCode | String Array | true | List of build codes |
JavaScript
ZingGrid.setLicense(['LICENCE_KEY']);
setLicense() Grid
Here is a complete grid which calls the setLicense()
method:
setBuildCode()
The setBuildCode()
method is used to set the build code and removes the watermark is the given build code is valid.
Function Defintiion
ZingGrid.setBuildCode(aBuildCode);
Name | Type | Optional | Description |
---|---|---|---|
aBuildCode | String Array | false | The first element of the array is the build code, and the second element is the build code id. |
JavaScript
ZingGrid.setBuildCode(['BUILD_CODE', 'BUILD_CODE_ID']);
setBuildCode() Grid
Here is a complete grid which calls the setBuildCode()
method:
[api: ZingGrid object]