OnGroupHeaderRender Event
Description
This event fires when a Group Header is rendered. It allows you to inject HTML either before, or after the Group Header HTML, or modify the Group Header HTML computed by Alpha Anywhere. Group Headers are displayed if you turn on the 'Has group breaks' property.
Discussion
Allows you to inject HTML above or below the Group Header HTML. It is fired before a Group Header is rendered.
The following variables are available to you in the event:
- Variable
- Description
- e.tmpl
The grid component definition
- e.rtc
Run-time calculations (allows you to pass data to other event handlers)
- e.groupHeaderHTML
The Group Header HTML computed by Alpha Anywhere
- e.breakValue
The current value of the Group Break Expression
- e.groupSummary
A pointer to summary values computed for the current group
- e.tbl
A pointer to the table (for .dbf) or resultset (for SQL) for the current row in the Grid. IMPORTANT: Your code must NOT advance the pointer (by doing a e.tbl.fetch_next() or e.tbl.nextRow()). You can read values from the current grid row as follows: e.tbl.data("feldname").
For SQL Grids the data in e.groupSummary does not use real fieldnames. The data is mapped to psuedo fields like 'GROUP_SUMMARY_FIELD_1', 'GROUP_SUMMARY_FIELD_2', etc. The map from real field name to psuedo field name can be found in the e.rtc.summaryValueFieldMap property.
Your event can optionally set the e.javascript to emit Javascript. Properties your event can set are listed below:
- Property
- Description
- e.javascript
Optional javascript to send to the client
Injecting HTML Above/Below the Group Header
If you inject HTML above or below the Group Header, you must wrap the injected HTML in <tr>..</tr> tags. The example below shows how a row is injected above the Group Header:
e.groupHeaderHTML = "<tr><td colspan=\"100\">New data above the header</td></tr>" + e.groupHeaderHTML
Setting State Variables
You can also set state variables in this event. The value of any state variables will be available in all subsequent ajax callbacks (in the e.__si2 object).
To set a state variable:
e._state.myvar1 = "value1" e._state.myvar2 = "value2"