How to access TableRecord in an Extension

Does anyone know how to access a TableRecord within an extension?
We have tried to use a recursive method to access the object but it conflicts with the AddMetaTag method of HTTPRequestHandler extension and changes the source of the page, leaving the HTML closing tag with the value "</".
The best way is to access the TableRecord control directly, without the need of using recursion. Anyone knows how to do that?


Marco Rodrigues
Hi Marco,

A TableRecords only lives client side, that is, in your browser. An extension lives only server side, on your platform server. There is no way you can have a server component do anything with a client side structure. That said, perhaps you only want to manipulate the data that's inside the TableRecords? In that case, you pass the List or Record List that is bound to the TableRecords (MyTableRecords.List) to the extension in a parameter.

If this is not what you mean, please explain, as you are not very clear in your intentions.
Hi Killian,

First at all thanks by your reply:)

I already can change the tablereacord in my extension, but i get the HTML table control recursively. I dont want to change the content, but the layout of the table (In my case hide some columns). I can do it in client side with JS or Styles, but that way there is more data in the comunications between client and server, and someone thats knows HTML can "unhide" the columns.
Using an extension that problems can be overtake.

I only want to know if there are some way to access an control by ID or by name (the name can be fixed with an extended property) because there is some strange conflit between the Function AddMetaTag and the Recursive algorihtm.

Marco Rodrigues

Hi Marco,

I honoustly haven't got a clue what you are trying to achieve and how. Since extensions live server side, how on earth does that limit communication between client and server? *scratches head*
I belive i did not explain myself well. I have a generic form that contains a table with 50 columns.
In this form is possible to generate different reports, each report has as an output a diferent number of columns.
So, what i pretend is to hide on each report output the columns that are not used.
For that i create a extension to hide the columns. That extension uses a recursive method to get and remove the columns that should not appear.

There is a strange conflit between the Function AddMetaTag (from extension HTTPRequestHandler) and the Recursive algorihtm that is used to achieve the column.

In my extension i have the following code:

HeContext heContext = AppInfo.GetAppInfo().OsContext;
Page currentPage = heContext.CurrentScreen;
Control wb = FindControlByClientID(currentPage.Controls[0], ssWebBlockRuntimeId); 
 private Control FindControlByClientID(ControlCollection controls, string clientID)
foreach (Control c in controls)
if (c.ClientID == clientID)
return c;
Control innerResult = FindControlByClientID(c.Controls, clientID);
if (innerResult != null)
return innerResult;
return null;

Hi Marco,

I still don't get it. How do you even transfer the page content to an extension and send it back again? Why on earth would you want to use an extension for screen manipulation? I'm totally baffled. May I assume that before using the Platform, you were a ASP.NET C# developer, and you still didn't lose the habbit of modifying pages with C#? Because from what I can tell, you are using the Platform in a way that it is totally not intended for!

If I need to hide columns on a screen, I'd use an Extended Property of "style", and set that conditionally to "display:none" (both header and data cell) for cases I didn't want it to show. What you are doing is so gross, so disgustingly abusive to the poor Platform, I'm all shaken and I need a good drink!
Hiding columns on client side wont remove them from the HTML and i belive that is what Marco wants. The ideal is to use a interative function that wont have a strange conflict with function AddMetaTag.

Hi Kilian,

Using the extended property results in pages (in my case) with lots of unecessary data.

I attach a print of source of my page when i use the "display:none" solution.

PS: You are right, i have a background with .NET :)
Hi Marco,

I admit that's a downside, but still, manipulating content in an extension... *shudders*