Table record disapears after Ajax refresh on IE 

Table record disapears after Ajax refresh on IE 

  
Hi,

We've encountered strange behaivor of TR in IE.

We have the following scenario:

Changing value in a combo, triggers a late load refresh of table records. Refresh action accepts to value passed by the combobox, along with the sorted columns, requery and re-render the wrapper div. This works well on FF. In IE (6 and above) it's not... if query does not return any records, the IE does not paint the TR. The TR is also bound to RichWidget\List_Navigation and RichWidget\List_Counter. Trying to page (on a blank TR...) will lead to exception.


Appericiate your help,

Dror

(TR with records)

 (TR without records)
Hi Dror,

Let me try to understand what might be happening.

Is there any Javascript error in IE? That could affect the way the TR display is done.
If the list is empty in the first place (when the page loads) is it rendered correctly?

Best Regards,

Daniel Lourenço
OutSystems
Daniel hi,

No javascript error appears on the screen. The TR simply vanished after ajax refresh, if there are no records available. This behaivor  appears to affect only on IE. FF works well.

Best regards,

Dror


Yeah, it's a known behaviour with multiple tables.
Some previous styling is the problem.

you might fix it with explicitly setting the style in extended properties.

Joost hi,

Which style should I use in the extended property?

Dror
Hi Dror,

As Joost said you can have a workaround by setting the "style" property of the Extended Properties to "display:block", this will ensure your Table Record is shown even if no results are available for display.



Best regards,
Renato Gonçalves
Hello all!
I found this problem in IE7.
In IE8, Chrome (4.0.249.89) and Firefox 3.5.8 it does not happen.
If you use the solution of setting the "style" property of the Extended Properties to "display:block" it does solve the problem in IE7, but in Chrome (did not test in Firefox) the formatting of the Table Records is lost (the width of all the columns is reduced to the minimum possible relative to the values they have).

The definitive solution that I found to work in all browsers (IE7, IE8, Chrome and Firefox) is to enclose the Table Records in a Container with the style set to "TableRecords_Frame".

Tiago Bernardo

Hi Tiago,

I still can't make it work. I have TableRecords_Wrapper, then TableRecords_Frame, then the actual TableRecord.
Any idea of what's missing here?

Thanks!
Hello,
I was wrong. After some tests I've confirmed that my solution doesn't work...
If you set the style property of the TableRecords to display: expression('block'); it is ignored on all browsers except Internet Explorer. This corrects the formatting issues on Firefox, Chrome, Safari, etc.
An old topic but I have the same problems.

Just found out that it has to do something with the ListLoad javascript style. In the developer tool of IE I found 2 styles which I don't use in my CSS (TableRecords.Empty {display:table;} and TableRecords_BottomNavigation {display:block;}) when I swich this style off the tables are displayed. Found on these styles in my espace it only found the javascript of the ListLoad.

I have mulitple tables on a serveral screens and want to set the style correct in the CSS not on every table. Maybe there is an update about this?

-------------------------------------------------------------------------------------------
function RichWidgetsWasco_List_LateLoad(containerId) {
  osjs(function($) {
 osAjaxBackend.BindAfterAjaxRequest(function(){
  $("#" + containerId).hide();
  $("body").append("<style>.TableRecords.Empty {display:table;}.TableRecords_BottomNavigation {display:block;}</style>");
  });
 });
}
------------------------------------------------------------------------------------------


Kind regards,
Evert
Hi all,

I think I have the same problem with IE.

As you can see on the image attached, the table has 19484 records but those records aren’t showed in the table records…. On firefox it works fine.



I’m using the List_LateLoad widget. I have a similar page were it works fine on both browsers.

I already tried the Extended Properties with "display:block", but it didn’t work...

Does someone have a different idea?

Thank you in advance
Filipe Feijão
Hello Filipe,

Does the table appears at all? Or do you only see the Ajax waiter (like the image)?

A table with 19000+ record is a big table :), but you say it does works in Firefox.

For this problem I've added the following in the extended properties of the TableRecord (solution João mentioned some post before):

Name 1: Style
Value 1:  "display: expression('block')"

But just must keep in mind that this logic makes the table appears in IE when the page is loaded.

Hope this is the solution to you problem.

Kind regards,
Evert

HI Evert,

the table doesn’t appear. I only can see the Ajax waiter (loading) … but in Firefox works fine.
This table will have more than 500.000 records. Do you think that, the size can be the problem?
I tried you suggestion but it didn’t work, the table doesn’t appear.
Anyone have other suggestion?
The image below shows that webscreen working in firefox :(




Thank you in advance
Kind regards,
Filipe Feijão
Hello Filipe,

It's not about the amount of records that exist in the table, but the amount you want to show in the table records (looking at the firefox image there are 19.000+ records in that table).

You can try this by setting the max. records on you're query (I would say, try 500 and see if that do the trick). If the table is shown correctly you know it's about the amount of records you try to load.

What you also can try is setting the query in the preparation instead and see if the table is loaded correctly in IE.

If that also doesn't work, I would say you submit it as feedback to OutSystems so they can found out what the problem is.

Kind regards,
Evert
HI Evert,
I tried with 99 records and the loading had the same behavior, ok in firefox and not ok in IE.

I will try outsystem support.

As soon I a have a solution I will update you.

kind regards,

Filipe Feijão