Version

Known Issues and Limitations (Unbound Columns, igGrid)

Topic Overview

Overview

The following table summarizes the known issues and limitations of the igGrid™ Unbound Columns feature. Detailed explanations of known issues and the possible workarounds are provided for some of the issues follow the summary table.

Legend:

Workaround available
No known workaround
Fix planned
Issue Description Status
Remote Filtering, Sorting and GroupBy features The Unbound Columns feature does not support Remote Filtering, Sorting and GroupBy features.
Using GridModel.SetUnboundValues(<Column key>, <Dictionary of values >) requires setting GridModel.PrimaryKey property The GridModel.SetUnboundValues(<Column key>, <Dictionary of values >) overloaded method requires a primary key to be set for the grid. The reason is that the second parameter of the method is dictionary whose key is set to the primary key of the grid.
Unbound Columns and chaining with remote URL Using Unbound Columns in chaining when MergeUnboundColumns is set to true is not a valid scenario.
Remote data source, Paging and initial unboundValues Grid will show same values for the unbound column when unboundValues is set on the client with remote paging enabled.
When MergeUnboundColumns=true then formula can’t be used to set values of unbound column In MVC scenario when MergeUnboundColums=TRUE, then on the client side the unbound values are already part of the dataSource and the column is interpreted as a “bound” column. The formula is taken into account when data binding the grid. If columns have a formula function set, these unbound column values are evaluated and set in the datasource’s dataview. As the formula’s execution occurs on the client side, the “unbound” column’s values are not calculated (because they are considered as “bound”) and the grid stays empty.
Updating and unbound columns Unbound column values are not persisted between the grid rebinds.
Virtualization and igGrid.setUnboundValues client API When using virtualization and calling the igGrid.setUnboundValues method, the grid scrolls to the top before rendering values in the unbound column.
MergeUnboundColumns = false and a boolean unbound column When values are configured on the server for unbound Boolean columns, any cells in that column that are not explicitly set on the server are automatically set to false when rendered on the client.
getUnboundValues client API and setting unbound values in the dataBound client event Using the igGrid.getUnboundValues method on the client does not return the unbound values if they are set through the dataBound() client-side event.

Remote Filtering, Sorting and GroupBy features

Note: Unbound columns do not support Remote Sorting, Filtering and Grouping. Consequently, these features are disabled for unbound columns in the Columns collection.

igGrid disables the remote Filtering, Sorting and Grouping features for the unbound columns as you can see in the following screenshot.

Using GridModel.SetUnboundValues(<Column key>, <Dictionary of values >) requires setting PrimaryKey

This overload accepts parameters “Column key” and a Dictionary of <PrimaryKey, Unbound Value> pairs. The PrimaryKey in the dictionary points to the primary key of a row in the igGrid and the “Unbound Value” is set to the unbound column with its key equal to “Column key.” If no primary key is defined, use the overload SetUnboundValues(<Column key>, < List of values >).

Unbound Columns and chaining with remote URL

When there is a remote URL and MergeUnboundColumns = TRUE then using chaining is NOT a valid scenario because through chaining you set some options, but when you do remote requests these options are re-set with the default values in controller/model, thus making MergeUnboundColumns = FALSE.

Remote data source, Paging and initial unboundValues

When there is a remote data source, and you have set default unboundValues in the client side code, each time the grid rebinds, reapplies these new settings. Therefore, when navigating to a new page, the same values are shown. This is normal behavior as the server returns only the result for the current page.

When MergeUnboundColumns=true then formula can’t be used to set values of unbound column

As a workaround, you can handle the databound client side event, and add those values manually to the data/dataView of the data source on the client, before it renders. Inside the dataBound event, the unbound columns are part of the data() array in the data source. Hence, they are accessible and filled based on the current row data or other values.

In JavaScript:

$("#grid1").live("iggriddatabound", function (event, ui) {
            var i, grid = ui.owner,
                ds = grid.dataSource,
                data = ds.data(),
                dsLength = data.length;
            for (i = 0; i < dsLength; i++) {
              data[i]["UnboundColumn1"] = 
                data[i]["UnitPrice"] * data[i]["UnitsInStock"];              
            }
 });

Updating and unbound columns

Note: If a row, containing unbound values is edited and committed, and the grid is rebound as a result of paging or sorting, those changes are not saved. This can be workaround by setting the unbound column values on dataBound event.

During CRUD operations, unbound column data is represented in the updating transactions, as well as updating. As unbound columns are part of the data array in the data source, it is up to an implementation decision to check if such a column exists in the underlying data source when the transactions are committed to the data source.

Unbound columns may be editable. If you want them to be read-only you should set it in the column settings of the updating feature.

In JavaScript:

{
      name: "Updating",
      editMode: 'row',
      enableAddRow: false,
      enableDeleteRow: true,                          
      columnSettings: [
        {
            columnKey: "Total",
            editorType: 'numeric',
            readOnly: true
        },
        {
            columnKey: "IsPromotion",
            editorType: 'bool',
            readOnly: true
        }
      ]
}

MergeUnboundColumns = false and a boolean unbound column

As a workaround set all Boolean row values explicitly on the server.

Related Content

Topics

The following topics provide additional information related to this topic.

View on GitHub