Expression you can specify to have fired just before a row gets rendered. The expression MUST return a string.
This handler is useful for:
- Injecting additional HTML content - like another row
- Calculating totals as they are rendered
Important
This function must return a string!
To set up the expression you'd use:
loConfig.OnAfterRowRender = "Process.AfterRowRender(loConfig)"
Note that the full expression is provided in quotes and that any objects accessed or passed must be in scope. To get a reference to the HtmlDataGridConfig object in the handler method pass in loConfig as a parameter.
This event fires while the record of the row just rendered is still active.
A more complete example looks like this:
*** Use the HtmlDataGrid Helper function (easier)
loConfig = CREATEOBJECT("HtmlDataGridConfig")
loConfig.PageSize = 10
loConfig.Width = "800px"
*** Set up a delegate FoxPro expression that is called
loConfig.OnAfterRowRender = "Process.GridGroupFooter(loConfig)"
*** Now render the grid
lcHtml = HtmlDataGrid("tt_Cust",loConfig)
Response.Write(lcHtml)
You then implement the expression as a handler for this - in this case as a Process class method. The expression must return a string - either an empty string or a string that gets embedded as a result. This method implements group headers based on the company name changing - when it changes a row is injected displaying the name of the company.
PROTECTED FUNCTION GridGroupFooter(loConfig)
LOCAL lcHtml, llNewProject
lcHtml = "" && Return empty if not matched
llNewProject = .F.
*** Read next record to see if it's a new project
if !eof()
SKIP
IF pcLastProject != TProjects.Project
llNewProject = .T.
ENDIF
SKIP -1
ENDIF
*** Private variable
pnProjectTotal = pnProjectTotal + TProjects.Cost
if !llNewProject
return ""
ENDIF
lcHtml = lcHtml + "<tr><td colspan='3'></td><td>" +;
TRANS(pnProjectTotal + ;
</td></tr>"
RETURN lcHtml
ENDFUNC
You can also replace the entire HTML of the current row rendered by setting the loConfig.RowContent
property to a string that represents the HTML of the row to render.
PROTECTED FUNCTION AfterRowRender(loConfig)
loConfig.RowContent = "<tr><td colspan='3'></td><td>Overridden!</td></tr>"
*** Still have to return a string
RETURN ""
o.OnAfterRowRender()
Remarks
The expression can pass the loConfig
object as a parameter to get the wwDataGridConfiguration instance and all of its support properties.
See also:
Class HtmlDataGridConfig© West Wind Technologies, 1996-2024 • Updated: 10/01/15
Comment or report problem with topic