Activate Panels Upon Load

I have a customization over UD40. Upon the Load of the form I would like each tab/panel to be activated so it will load all of the custom fields/grids/etc on it. How do I activate the panels? So for example on load I want it to activate the CS panel and load all the elements, move to the NewQuote panel and load all the elements, move to the MoreQuoteInfo panel and and load all the elements, etc.

I would think at that point you may be better off using an updateable dashboard based on the table rather than trying to code all that in there. Not sure what you mean by load all the elements tho?

No, I just want to focus on each tab at launch so that the tab will load all the customized fields. Instead what happens now is after launch the page doesn’t load until the user physically clicks on the tab.

I think the panel activation should not actually be required programmatically to do what you’re trying to do. What have you tried so far to refresh the data? Can you post your code?

Its not refreshing the data is having the form draw itself. Upon initial load it takes about 30 secs to fully load. and the tab won’t start drawing until it is activated. I am not trying to load any data during load, just the form customization itself.

The thirty second load time sounds pretty alarming to me. It could be that controls aren’t drawing properly because the form is either out of available memory, or there’s something else wrong with the form.

For reasons I mentioned in the insights presentation (that I have not yet posted online because I’m a slacker), I’m with Rob on this. I would take a look back at your user requirements and determine if there’s a way you can accomplish this with an updatable BAQ because it will likely provide more predictable performance.

As for activating panels upon load, you should be able to do something equivalent to the following:

EpiBasePanel p = (EpiBasePanel)csm.GetNativeControlReference("MyEpiGuidHere"); 
p.Activate();

or something similar. However, I strongly recommend against doing this in your particular instance.

I don’t understand how / why the tab takes time to render.
Can you post a video showing what you mean? How much code is involved in this customization?

What does your panels contain?

I have created a multipanel UD form, where each panel is for a dashboard that I embedded during panel creation. The load time is mostly based on the queries of the dashboards. If I click on another panel, the query is activated and it will take the query time to return data…

So if that is your case (panels are made of Dashboards…) look at your queries…maybe. ?

Pierre

Okay I appreciate everyone’s concern with load time. However, that was an issue I had posted about quite a while ago. We narrowed it down to drawing and I got it from 2 minutes to 30 secs. Here is that original post: Slow to Load

This is basically a work around from that post. I have found that if I can get the tab activated, it will draw the panel and the elements on that form. So, I want to at load click on all tabs and start the drawing process. I wasn’t planning to reopen the slow to load issue because I felt like we exhausted it pretty thoroughly before. If someone sees something glaring in that previous post let me know though.

I had this as an updatable Dashboard originally, but there are several requirements those Dashboards couldn’t handle and they were taking even longer to load. So, I rebuilt the whole thing over UD40 and speed improved. I am trying the activate but I am getting this error: Error: CS1061 - line 5468 (14629) - ‘Ice.Lib.Framework.EpiBasePanel’ does not contain a definition for ‘Activate’ and no extension method ‘Activate’ accepting a first argument of type ‘Ice.Lib.Framework.EpiBasePanel’ could be found (are you missing a using directive or an assembly reference?)

Oh finally I got the root issue figured out!!! I added one big group box and cut and paste all elements inside of the group box on each tab. Now everything loads very quickly!!

1 Like

For posterity because the title of this post is “Activate Panels Upon Load”. For some forms the activate method is more accessibly built into the panel types. A good solution to universally activating a pane is answered here:

1 Like