Welcome Guest Search | Active Topics | Sign In | Register

Third Party Control not rendering in CallbackPanel Options
Chris
Posted: Thursday, April 30, 2009 11:09:55 AM
Rank: Member
Groups: Member

Joined: 4/29/2009
Posts: 13
Hi,

I'm currently evaluating Essential Objects and ZettaCube's products to determine which will be used in our new web application.

I have to use ThinkGeo's Map Web Suite Edition to render maps.

I am having success rendering the map control using ZettaCube's product, but don't have any luck doing the same in EO. I have tried all your panels with no luck.

At this juncture, I would prefer to use your product since it provides excactly the functionality I need. However, my inability to render the maps makes this justification difficult if not impossible.

Any suggestions would be greatly appreciated. I have an example project that I can provide should it be required.

Thanks,
Chris
eo_support
Posted: Thursday, April 30, 2009 11:40:23 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,083
Hi Chris,

The key difference at here is the CallbackPanel. CallbackPanel uses AJAX to provide partial page update and it requires special consideration on the control part in order to function. Most regular HTML only ASP.NET control will function fine without any modifications. However for complicated controls that heavily rely on JavaScript, it is often required that the control itself to be “AJAX aware” in order for it to be correctly AJAX updated. My understanding is that ZettaCube does not offer AJAX update ability, thus they do not have this issue as well.

There are several possible solutions to workaround this. One way is to use an iframes. You can place the map into a separate page, which is loaded through an iframe. This way you can simply update the map by updating the iframe’s Url (usually passing parameters in through query string). If you also need to update other UI elements along with the iframe, you can put both the iframe and other UI elements inside the CallbackPanel. Since the map is inside a separate page, it should not interfere with the hosting page and it should have no issue with the CallbackPanel.

Another option you can try is to use Microsoft UpdatePanel instead of our CallbackPanel. Both offer similar functionalities. We have certain advantages but UpdatePanel has a larger user base because it is part of ASP.NET 3.5. That means third party control vendor such as ThinkGeo may have already modified their product accordingly so that it does work with UpdatePanel. You can use any of our other controls along with UpdatePanel as well.

A sample project will also be very helpful. We will be happy to take a look if we are not legally permitted to run your test project along the controls it uses in our test environment. Because it is often required that the control itself to make changes in order to be “AJAX aware”, we can not guarantee that we will have a solution in that case. We can certainly make recommendations about what needs to be changed. We will PM you as to where to send the sample project if you wish to.

Thanks!
Chris
Posted: Thursday, April 30, 2009 1:49:16 PM
Rank: Member
Groups: Member

Joined: 4/29/2009
Posts: 13
I have uploaded the requested sample project.

ZettaCube does allow for AJAX updates, although they have some other issues...

I will experiment with your iframe suggestion - it sounds interesting.

I did try the standard Microsoft UpdatePanel inside the left SliderPanel - with the same non-rendering result - which makes me think that maybe ThinkGeo's control does not adhere to certain standard practices.

Thank you for your quick response.

Chris
eo_support
Posted: Thursday, April 30, 2009 2:57:03 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,083
Hi,

We have looked into the sample project you sent to us. We ran the page with Visual Studio 2008 and the page fails inside ThinkGeo's JavaScript code. However we then tried to create a second page without our controls and the page fails at the same place. Our test page is as follow:

Code: HTML/ASPX
<body>
    <form id="form1" runat="server">
    <div>
         <cc1:Map ID="Map1" runat="server" height="480px" width="640px">
         </cc1:Map>    
    </div>
    </form>
</body>


Can you try the same and see if it also fails on your side? If so, how to get it to run at all?

Thanks!
Chris
Posted: Friday, May 1, 2009 7:02:42 AM
Rank: Member
Groups: Member

Joined: 4/29/2009
Posts: 13
You are missing a required ScriptManager, e.g.

<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<cc1:Map ID="Map1" runat="server" Height="480px" Width="640px">
</cc1:Map>
</div>
</form>
</body>
eo_support
Posted: Friday, May 1, 2009 8:42:36 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,083
Hi,

Thanks for the information. We added an asp:ScriptManager to Default.aspx in your test project and the map renders fine. We even added a CallbackPanel and that worked fine as well. So now the questions, how to get it to show the problem? :)

Our test page is as follow:

Code: HTML/ASPX
<asp:ScriptManager runat="server" ID="ScriptManager"></asp:ScriptManager>
<eo:ScriptManager ID="ScriptManager1" runat="server"></eo:ScriptManager>

<eo:CallbackPanel runat="server" ID="CallbackPanel1">
    <eo:Splitter ID="Splitter1" runat="server" BorderColor="#A0A0A0" 
        BorderStyle="Solid" BorderWidth="1px" CollapseButtonHoverImage="00080103" 
        CollapseButtonImage="00080102" CollapseLeft="False" ControlSkinID="None" 
        DividerImage="00080101" DividerSize="8" ExpandButtonHoverImage="00080105" 
        ExpandButtonImage="00080104" Height="100%" Width="100%" AutoFillWindow="True">
        <eo:SplitterPane ID="SplitterPane1" runat="server" 
                         Height="180px" 
                         Width="100px">
             <cc1:Map ID="Map1" runat="server" height="480px" width="640px">
            </cc1:Map>
        </eo:SplitterPane>
        <eo:SplitterPane ID="SplitterPane2" runat="server" 
                         Height="180px" 
                         Width="100px" 
                         InitialSize="340" 
                         MaxWidth="400">
        </eo:SplitterPane>
    </eo:Splitter>
</eo:CallbackPanel>


Note that it includes both asp:ScriptManager and eo:ScriptManager because eo:ScriptManager is only for our controls. It does not replace the standard asp:ScriptManager.

Thanks!
Chris
Posted: Friday, May 1, 2009 8:50:15 AM
Rank: Member
Groups: Member

Joined: 4/29/2009
Posts: 13
That's it!

What was missing was the asp:ScriptManager. Now it behaves properly.

Thanks for all your help.
eo_support
Posted: Friday, May 1, 2009 9:14:25 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,083
Glad it's working! Please feel free to let us know if you have any more questions.


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.