ColumnsPanel widget
This widget represents “columns panel” - a rectangular area of your web-page which contains the list of query result columns and provides some operations for manipulating with that list: add/remove a column, change its type, set column’s sorting, etc.\ All options of ColumnsPanel widgets can be set through ”columnsPanel” property of ”easyQuerySettings” global variable. Of course you can also set options and call methods of ColumnsPanel in an usual for jQuery widgets way.
Options
Section titled “Options”showAddRow
Section titled “showAddRow”Type: Boolean
Default: true
Gets or sets a value indicating whether columns panel must show a special [add column] link at the bottom
showHeader
Section titled “showHeader”Type: Boolean
Default: true
Gets or sets a value indicating whether columns panel must show a header at the top
showColumnCaptions
Section titled “showColumnCaptions”Type: Boolean
Default: true
Gets or sets a value indicating whether columns panel must show an editable caption for each column (i.e. “SELECT ColumnName AS ColumnCaption…“)
allowAggrColumns
Section titled “allowAggrColumns”Type: Boolean
Default: true
Gets or sets a value indicating whether columns panel allows user to use aggregated columns
allowDuplicates
Section titled “allowDuplicates”Type: Boolean
Default: true
Gets or sets a value indicating whether it’s allowed to add exactly the same column more than once
allowCustomExpressions
Section titled “allowCustomExpressions”Type: Boolean
Default: false
Gets or sets a value indicating whether it’s allowed to use a custom expression for the column definition instead of some entity attribute.
If it’s turned on - a new menu item appears in the menu dropped on clicking on [f] button.
///
allowSorting
Section titled “allowSorting”Type: Boolean
Default: true
Gets or sets a value indicating whether columns panel allows user to set columns sorting
attrElementFormat
Section titled “attrElementFormat”Type: String
Default: '{entity} {attr}'
Gets or sets the format of the attribute display name. ‘{entity}’ is replaced with entity name, ‘{attr}’ is replaced with attribute name
titleElementFormat
Section titled “titleElementFormat”Type: String
Default: null
Gets or sets the format of column’s title display name. ‘{entity}’ is replaced with entity name, ‘{attr}’ is replaced with attribute name.
Default value is null which means that columns panel will use the same format as it’s set to attrElementFormat option
///
alwaysShowButtons
Section titled “alwaysShowButtons”Type: Boolean
Default: false
Gets or sets a value indicating whether the service buttons are permanently displayed in all columns (true), or just in active column and the column user moves the cursor over (false)
accentActiveColumn
Section titled “accentActiveColumn”Type: Boolean
Default: true
Gets or sets a value indicating whether the active column should be backlighted and permanently display the service buttons
menuSearchBoxAfter
Section titled “menuSearchBoxAfter”Type: Number
Default: 30
If the number of items in drop down menu exceeds this number then a search box will be displayed. Set this option to 0 if want to show the search box in any case
allowDragDrop
Section titled “allowDragDrop”Type: Boolean
Default: true
Gets or sets a value indicating whether the columns may be dragged and dropped
menuOptions
Section titled “menuOptions”Type: Object
Default: “
Contains different options for popup menu that appears for selecting attributes in columns.\
Includes the following sub-options:
attrPlacement
Section titled “attrPlacement”Type: Integer
Default: 0
Defines where to display attributes in the tree:
0 - attributes are displayed after entities
1 - attributes are displayed before entities
2 - attributes and entities are mixed, and displayed in alphabetical order. In this case the “sortEntities” option value dosn’t matter.
sortEntities
Section titled “sortEntities”Type: Integer
Default: false
Defines whether entities and attributes should be sorted alphabetically. If false, they are displayed as listed in the model.
columnRenderedCallback
Section titled “columnRenderedCallback”Type: function
Default: null
The callback that is called when the column’s row has been rendered. It allows you to make any changes you need to the markup of the row.
Parameters:
columnDiv - jQuery object that represents the column’s row div
For example, if you need to add some class:
columnRenderedCallbackHandler: function (columnDiv) { columnDiv.addClass("some-cool-class");}
customExpressionText
Section titled “customExpressionText”Type: Integer
Default: 0
Gets or sets a value which defines what text should be used for custom expressions’ links. Possible values are:
0 - show the SQL expression itself. Default behaviour.
1 - show special [Custom SQL] text.
2 - show column’s title.
Methods
Section titled “Methods”clearColumns
Section titled “clearColumns”Clears the list of columns in associated query and redraws a panel, if needed.
This method is deprecated. Use Query.clearColumns() instead.
addNewColumn
Section titled “addNewColumn”Returns: The added column object
Returns type: PlainObject
Adds a new column to the query and updates the columns panel
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
attrid | String (or Array of Strings) | The ID (or the array of IDs) of the attribute the new column is based on. |
index | Integer | The position in the columns list the new column(s) should be inserted to. If undefined, the column is added to the end of the list. |
addColumn
Section titled “addColumn”Adds a new column to the query and updates the columns panel
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
column | PlainObject (or Array of PlainObject) | The column object (or the array of such objects) to be added. |
index | Integer | The position in the columns list the new column(s) should be inserted to. If undefined, the column is added to the end of the list. |
removeColumn
Section titled “removeColumn”Remove the column object from the list of columns and updates the columns panel
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
column | PlainObject | The column object to be removed. |
removeColumnByAttrId
Section titled “removeColumnByAttrId”Remove the column object from the list of columns and updates the columns panel
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
attrId | String | The ID of the attribute. The first found column with such an attribute ID will be removed. |
moveColumn
Section titled “moveColumn”Moves the column object from its current position to specified direction
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
column | PlainObject | The column object to be moved. |
direction | String | One of the following: ‘MoveTop’, ‘MoveUp’, ‘MoveDown’, ‘MoveBottom’ |
refresh
Section titled “refresh”Re-renders the panel
setActiveColumnWidget
Section titled “setActiveColumnWidget”Activates the particular column in the panel
Parameters
Section titled “Parameters”Name | Type | Description |
---|---|---|
columnWidget | Object | The ColumnRow_ENTATTR or ColumnRow_AGGRFUNC object to activate. |
Here is an example how to set ColumnsPanel options when you initialize ”easyQuerySettings” variable: |
window.easyQuerySettings = { serviceUrl: "/EasyQuery", modelName: "YourModelName", //put the name of your model here . . . . . . . columnsPanel: { allowAggrColumns: true, attrElementFormat: "{attr}", //show only attribute instead of "{entity} {attr}" format used by default. showColumnCaptions: true, . . . . . . } . . . . . .}
An example of setting some ColumnsPanel option in code using ”option” method:
var QCDiv = $('#QueryColumn');if (QCDiv.length > 0) { QCDiv.ColumnsPanel("option", "showHeader", false)}
If you include ”eq.view.js” script on your page then this widget (as well as QueryPanel and EntitiesPanel) is initilized implicitly (on page load) for all DOM elements with id “ColumnsPanel”. So all you need to do to add on your page is:\ \
- Define a placeholder
javascript <div id="ColumnsPanel"></div>
- Include ”eq.all.min.js” and ”eq.view.js” on your page (after jQuery and jQuery UI).