HTML Presentation Object: Get cell value from dataset
Jump to navigation
Jump to search
The following example shows how to get a single cell value from a dataset and present it in an HTML presentation object. The functionality is similar as in the expression language Cell function.
Configurable JavaScript variables are (corresponding to the Cell function parameters):
- datasetIdentifier<#uniqueId>
- columnNameOrIndex<#uniqueId>
- rowNumber<#uniqueId>
- defaultValue<#uniqueId>
<div id="container<#uniqueId>"></div> <style> #container<#uniqueId> { margin: 10px 0px 0px 15px; font-size: 15px; } </style> <script> var datasetIdentifier<#uniqueId> = "myDataset1"; var columnNameOrIndex<#uniqueId> = 1; //can be defined as column name (string) var rowNumber<#uniqueId> = 1; var defaultValue<#uniqueId> = "default value"; var poData<#uniqueId>; function <#datasetChangeFunction>(datasetIdentifier, datasetChangeCallbackFunction) { if (datasetIdentifier == datasetIdentifier<#uniqueId>) { datasetChangeCallbackFunction(datasetAvailable<#uniqueId>); } } function datasetAvailable<#uniqueId>(datasetData) { if (datasetData == null || datasetData.sheets == null || datasetData.sheets.length == 0 || datasetData.sheets[0] == null || datasetData.sheets[0].values == null || datasetData.sheets[0].values.length == 0) return; if (columnNameOrIndex<#uniqueId> == null) columnNameOrIndex<#uniqueId> = 1; if (rowNumber<#uniqueId> == null) rowNumber<#uniqueId> = 1; var columnIndex = null; if (typeof columnNameOrIndex<#uniqueId> == "string") { for (var index = 0; index < datasetData.sheets[0].values.length; index++) { if (datasetData.sheets[0].values[index][0].value == columnNameOrIndex<#uniqueId>) { columnIndex = index + 1; break; } } } else { columnIndex = columnNameOrIndex<#uniqueId>; } var textboxValue = null; if (columnIndex == null) { textboxValue = "Column name \"" + columnNameOrIndex<#uniqueId> + "\" wasn't found."; } else if (columnIndex < 1) { textboxValue = "Column index cannot be lower than 1 (" + columnIndex + ")"; } else if (rowNumber<#uniqueId> < 1) { textboxValue = "Row number cannot be lower than 1 (" + rowNumber<#uniqueId> + ")"; } else if (datasetData.sheets[0].values.length < columnIndex) { if (defaultValue<#uniqueId> == null) { textboxValue = "Provided column index wasn't found in the dataset."; } else { textboxValue = defaultValue<#uniqueId>; } } else if (datasetData.sheets[0].values[0].length <= rowNumber<#uniqueId>) { if (defaultValue<#uniqueId> == null) { textboxValue = "Provided row number wasn't found in the dataset."; } else { textboxValue = defaultValue<#uniqueId>; } } else { textboxValue = datasetData.sheets[0].values[columnIndex - 1][rowNumber<#uniqueId>].value; } $("#container<#uniqueId>").text(textboxValue); } </script>