ThinkGeo.com    |     Documentation    |     Premium Support

Microsoft JScript runtime error: 'Map1' is undefined

I am trying to build a page that allows overylay of shapes similarly to the DrawEditShapes page in the samples. When I create a new page and add the controls from the sample, I get the error stating that my map does not exist.  I am using a master page, but other than the pages look the same.


Also, I was initially trying to ise the description panel in my project but can not get the tag prefixes to show up in the designer. I have added the helper folder to my project. Any ideas why the description tag will not work for me?



1783-shapes.txt (3.14 KB)

It looks like the problem is that the control ids are being prefixed with ctl00_MainContent in the javascript. How can I prevent this? Is this caused by the master page?


runtime javascript from working sample:


 


runtime javascript from my page that fails:



Notice the name of the map control is ctl00_MainContent_Map1.


Also, is there a document containing the client side methods like the SetDrawMode? I only see server side in the API doc/chm.


 



David,


I followed your instruction to recreate a new sample which contains a master page and a description panel. It works fine. Please have a try the attached project.


On the other hand, the description panel is only for our sample; so it’s not well organized and not so customize. Here I’ll show you how to use it in your sample with this existing control.


1, copy the helper folder with DescriptionPanel.cs, .htm, .js from our installed folder to your application. 

2, open DescriptionPanel.cs and change its namespace to the namespace for your project.

3, open theme/default from the installed folder, copy the samplepic/style.css and samplepic/frame folder to the corresponding folder.

4, open your aspx page and register it as:

<%@ Register Assembly="Post7086" Namespace="Post7086" TagPrefix="cc2" %>

5, then you can use it freely as a normal control.


For your last question, we have an API for client side by it’s not in the package you installed. Please visit the following address for more information about the client APIs. Sorry for the inconvenience.

gis.thinkgeo.com/Support/Dis...fault.aspx


Please let me know if you have more questions.

Thanks,

Howard



1785-Post7086.zip (101 KB)

I am writing in VB. Would you happen to have this in VB? I shoudl be able to convert if needed.

I am writing in VB. Would you happen to have this in VB? I shoudl be able to convert if needed.

Thank you for the link on the client side API. This is very helpful.


For your example project, yes the map works with a master page. But if you try to call any of the client API functions, the control is not found because ASP appears to put prefixes on the control names in javascript. I added a button to your example and tried to call the SetDrawMode function and get the same jscript 'Map1 undefined' exception that I am getting in my project. Try it on your side to see what I mean. Below is a line from the javascript code upon crash. I have tried hard coding the OnClientClick value in my page to use the ctl00_yourcontentplaceholder_Map1.SetDrawMode, but this also fails. What can I do?


    

 



XXtable id="ctl00_ContentPlaceHolder1_Map1Container" cellpadding="0" cellspacing="0" border="0" style="width:400px;height:400px;"> 


Sorry, I guess placing the code in my reply is causing problems with the page. ClientID=ctl00_ContentPlaceHolder1_Map1

David,


Sure, here attaches the VB project. "Map1" is the client id of your map control, if you put it into the master page, web control will add a prefix name in front of it. So the easiest way is using <%=Map1.ClientID%>.SetDrawMode instead.


This post is hard to read currently; if you don't mind, please create a new topic when you have more questions.


Thanks,

Howard

 



1786-Post7086VB.zip (109 KB)