ComponentOne ASP.NET MVC Controls
FlexGridDetailProvider Class
File
wijmo.grid.detail.js
Module
wijmo.grid.detail

Implements detail rows for FlexGrid controls.

To add detail rows to a FlexGrid control, create an instance of a createDetailCell property to a function that creates elements to be displayed in the detail cells.

For example:

// create FlexGrid to show categories
var gridCat = new wijmo.grid.FlexGrid('#gridCat');
gridCat.itemsSource = getCategories();

// add detail rows showing products in each category
var detailProvider = new wijmo.grid.detail.FlexGridDetailProvider(gridCat);
detailProvider.createDetailCell = function (row) {
  var cell = document.createElement('div');
  var gridProducts = new wijmo.grid.FlexGrid(cell);
  gridProducts.itemsSource = getProducts(row.dataItem.CategoryID);
  return cell;
}

The detailVisibilityMode property that determines when the detail rows should be displayed. The default value for this property is ExpandSingle, which adds collapse/expand icons to the row headers.

The example below shows how you can use a FlexGridDetailProvider to add different types of detail to the rows in a FlexGrid:

{@sample Grid/Rows/RowDetail/purejs Example}

Constructor

Properties

Methods

Constructor

constructor

constructor(grid: FlexGrid, options?: any): FlexGridDetailProvider

Initializes a new instance of the FlexGridDetailProvider class.

Parameters
Optional

Initialization options for the new FlexGridDetailProvider.

Returns
FlexGridDetailProvider

Properties

createDetailCell

Gets or sets the callback function that creates detail cells.

The callback function takes a Row as a parameter and returns an HTML element representing the row details. For example:

// create detail cells for a given row
dp.createDetailCell = function (row) {
  var cell = document.createElement('div');
  var detailGrid = new wijmo.grid.FlexGrid(cell, {
    itemsSource: getProducts(row.dataItem.CategoryID),
    headersVisibility: wijmo.grid.HeadersVisibility.Column
  });
  return cell;
};
Type
Function

detailVisibilityMode

Gets or sets a value that determines when row details are displayed.

The default value for this property is DetailVisibilityMode.ExpandSingle.

Type
DetailVisibilityMode

disposeDetailCell

Gets or sets the callback function that disposes of detail cells.

The callback function takes a Row as a parameter and disposes of any resources associated with the detail cell.

This function is optional. Use it in cases where the createDetailCell function allocates resources that are not automatically garbage-collected.

Type
Function

grid

Gets the FlexGrid that owns this FlexGridDetailProvider.

Type
FlexGrid

isAnimated

Gets or sets a value that indicates whether to use animation when showing row details.

The default value for this property is false.

Type
boolean

keyActionEnter

Gets or sets the action to perform when the ENTER key is pressed.

The default setting for this property is None, which lets the grid handle the key. The other option is ToggleDetail, which handles the Enter key to toggle the display of the row details.

Type
KeyAction

maxHeight

Gets or sets the maximum height of the detail rows, in pixels.

The default value for this property is null, which means there's no upper limit to the detail row height.

Type
number

rowHasDetail

Gets or sets the callback function that determines whether a row has details.

The callback function takes a Row as a parameter and returns a boolean value that indicates whether the row has details. For example:

// remove details from items with odd CategoryID
dp.rowHasDetail = function (row) {
  return row.dataItem.CategoryID % 2 == 0;
};

Setting this property to null indicates all rows have details.

Type
Function

Methods

getDetailRow

getDetailRow(row: any): DetailRow

Gets the detail row associated with a given grid row.

Parameters
  • row: any

    Row or index of the row to investigate.

Returns
DetailRow

hideDetail

hideDetail(row?: any): void

Hides the detail row for a given row.

Parameters
  • row: any
Optional

Row or index of the row that will have its details hidden. This parameter is optional. If not provided, all detail rows are hidden.

Returns
void

isDetailAvailable

isDetailAvailable(row: any): boolean

Gets a value that determines if a row has details to show.

Parameters
Returns
boolean

isDetailVisible

isDetailVisible(row: any): boolean

Gets a value that determines if a row's details are visible.

Parameters
Returns
boolean

showDetail

showDetail(row: any, hideOthers?: boolean): void

Shows the detail row for a given row.

Parameters
Optional

Whether to hide details for all other rows.

Returns
void