Hi
This tut is based on this lib here, [BANano] UOEGridTable.
A question popped up about how I can display images, or perhaps other icons in grid columns. After some researching I noted a column rendered for the gijgo grid.
Its definition is...
A renderer is an 'interceptor' function which can be used to transform data (value, appearance, etc.) before it is rendered.
So I went along and coded an image render.
1. I added a column type of image being COLUMN_IMAGE, thus to add a column that will have images, one needs to..
2. What this does in the background is to run code each time a record is processed.
and the imagerender code in the component class..
3. ImageRenderer
One can also apply css from code like this..
This basically reads the value of the cell and renders it inside an img tag. I guess with this one can write their own data renderers, I'm still exploring. Anyway internally, one does not need to worry about this, as long as your images are being rendered.
4. Setting Image Width & Height per row
You can specify the image width and image height for each image record to be displayed. This you can do by adding the imagewidth and imageheight field in each record added to the grid records.
Ta!
#HelpingOthersToSucceed
This tut is based on this lib here, [BANano] UOEGridTable.
A question popped up about how I can display images, or perhaps other icons in grid columns. After some researching I noted a column rendered for the gijgo grid.
Its definition is...
A renderer is an 'interceptor' function which can be used to transform data (value, appearance, etc.) before it is rendered.
So I went along and coded an image render.
1. I added a column type of image being COLUMN_IMAGE, thus to add a column that will have images, one needs to..
B4X:
gridcountries.AddColumn("flagUrl","Flag",gridcountries.COLUMN_IMAGE, 0, True, gridcountries.ALIGN_LEFT)
2. What this does in the background is to run code each time a record is processed.
B4X:
If colType = COLUMN_IMAGE Then
Dim value, record, cell, displayEl As Map
col.Put("renderer", BANano.CallBack(Me,"imagerender",Array(value, record, cell, displayEl)))
End If
and the imagerender code in the component class..
3. ImageRenderer
B4X:
'image handler
Sub ImageRender(value As Object, record As Map, cell As BANanoObject, displayEl As BANanoObject)
'convert to an element
Dim dE As BANanoElement = BANano.ToElement(displayEl)
Dim simg As String = $"<img src="${value}" alt="">"$
dE.SetHTML(simg)
End Sub
One can also apply css from code like this..
B4X:
$cell.css('font-style', 'italic');
$displayEl.css('background-color', '#EEE');
This basically reads the value of the cell and renders it inside an img tag. I guess with this one can write their own data renderers, I'm still exploring. Anyway internally, one does not need to worry about this, as long as your images are being rendered.
4. Setting Image Width & Height per row
You can specify the image width and image height for each image record to be displayed. This you can do by adding the imagewidth and imageheight field in each record added to the grid records.
Ta!
#HelpingOthersToSucceed
Last edited: