ASP.NET AJAX Advance Tips & Tricks (6)

AJAX Control Toolkit与Virtual Earth的兼容问题

前言:

Virtual Earth作为微软的地图服务,在技术和实用性上与Google Map有的一拼,某些方面还比Google Map做的要好,用的人也越来越多了。但由于其JavaScript的高度封装特性,最近遇到了不少Virtual Earth与ASP.NET AJAX不兼容的情况。案例既多又复杂,本篇通过一个有代表性的例子来讨论两者的兼容 ,希望能帮助遇到此麻烦的开发者解决问题。

问题重现:

下面的代码将一个Virtual Earth地图放在一个AJAX Control Toolkit 的Tab Panel里:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Virtual Earth Test</title>
    <script type="text/javascript" 

src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?

v=6.2"></script>
      <script type="text/javascript">
          var map = null;
          function GetMap() {
              map = new VEMap('myMap');
              map.LoadMap();
          }
          function DoZoomIn(c) {
              map.ZoomIn();
          }
          function DoZoomOut() {
              map.ZoomOut();
          }
          function DoCenterZoom() {
              var lat = document.getElementById('txtMapLat').value;
              var lon = document.getElementById('txtMapLon').value;
              var zoom = document.getElementById('zoomLevel').value;
              map.SetCenterAndZoom(new VELatLong(lat, lon), zoom);
          }
      </script>
</head>
<body onload="GetMap();">
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <ajaxToolkit:TabContainer ID="TabContainer1" runat="server" 

ActiveTabIndex="0" >
            <ajaxToolkit:TabPanel runat="server" 

HeaderText="Pictures" ID="TabPanel1">
            <ContentTemplate>
            Pictures
            </ContentTemplate>
            </ajaxToolkit:TabPanel>
            <ajaxToolkit:TabPanel runat="server" 

HeaderText="Location" ID="TabPanel2">
            <ContentTemplate>
            <div id='myMap' style="position:relative; width:350px; 

height:300px;"></div>
                                        <div>Latitude:<input id='txtMapLat' 

style='width: 30px' type='text' value='45' /></div>
                                        <div>Longtidude:<input id='txtMapLon' 

style='width: 30px' type='text' value='-120' /></div>
                                        <div>
                                        Zoom level:<input id='zoomLevel' type='text' 

style='width:15px;' value='5' />
                                        <input type='button' value='Set center & 

zoom' onclick='DoCenterZoom();' />
                                        </div>
            </ContentTemplate>
            </ajaxToolkit:TabPanel>
        </ajaxToolkit:TabContainer>
    </div>
    </form>
</body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索map
, function
, document
, virtual
, getelementbyid
Earth
,以便于您获取更多的相关知识。

时间: 2024-08-01 14:51:41

ASP.NET AJAX Advance Tips &amp; Tricks (6)的相关文章

ASP.NET AJAX Advance Tips &amp;amp; Tricks(11) 三种方法动态创建Tooltip

前言 如何动态创建提示框(Tooltip)是ASP.NET Forum里的常见问题之一,在做技术支持时,我曾在英文 博客上总结过ASP.NET和ASP.NET AJAX环境下如何动态创建提示框的三种常见方法,比较基础,收到了蛮 多老外们的commend,如今英文博客被墙,特转到这里来与大家分享. 原文地址: http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/ http://lancezhang.wordpr

ASP.NET AJAX Advance Tips &amp;amp; Tricks (7) ASP.NET AJAX与URLRewriting

前言: 最近一些使用URLRewriting的朋友们有时候会遇到ASP.NET AJAX和AJAX Control Toolkit控件不能正 常工作的现象,对于没有相关经验的开发者来说相当棘手.本篇通过案例分析和相对的解决方案来讨论在 使用ASP.NET AJAX 与 URLRewriting 时应当注意到的一些兼容性问题. 问题重现: 一般简单的URLRewriting应用都是对来自客户端对资源的Request进行路径重定向,比较典型的写法如 同下列代码1 和代码2: 代码1: // If t

ASP.NET AJAX Advance Tips &amp;amp; Tricks (5) UpdatePanel与jQuery

前言 现在越来越多的朋友喜欢将jQuery和ASP.NET AJAX 一起来用,最近,许多印度人在forum里抱怨说 UpdatePanel和jQuery不兼容,许多jQuery效果在UpdatePanel更新之后就不work.本篇通过分析两者的框 架结构来解决这个兼容性问题. 问题重现: 1.在页面中添加ScriptManager和UpdatePanel 2.在UpdatePanel中添加元素A 3.用jQuery对元素A添加X效果 4.在UpdatePanel中加一个ButtonB用作pos

ASP.NET AJAX Advance Tips &amp;amp; Tricks (4)

ASP.NET AJAX Performance Improvement Preface I think everyone would agree that AJAX is one of the elements of "Web 2.0", every web developers should know this technology. I have been collected a list of the popular AJAX Frameworks on my chinese

ASP.NET AJAX Advance Tips &amp;amp; Tricks (3) JavaScript与Tab的交互

前言 ASP.NET AJAX Control Toolkit 中的Tab控件非常简单易用,对服务端和客户端的支持都非常不错. 本篇通过几个FAQ给大家介绍Tab和JavaScript的常用交互,以及应该注意到的问题. 1. TabCantainer的JavaScript接口 目前的Tab控件很多,而Altas的Tab控件有点在于JavaScript接口非常丰富,而且非常便于理解和使用 ,一般常用的有以下几组: get_headerText//获取标题文字 set_headerText//设置标

ASP.NET AJAX Advance Tips &amp;amp; Tricks (2)

动态创建Rating控件不能保存ViewState的解决方案 前言: Rating控件用来标识分级,目前已经有广泛应用.AJAX Control Toolkit中的Rating也做的相当成熟 ,也算是ASP.NET AJAX扩展中做的最像传统服务端控件的一个了.然而,最近很多朋友抱怨说如果在后台 代码中动态创建Rating控件,那么在PostBack发生后,Rating的状态将会丢失(未存入ViewState).本 文介绍两种方法来解决此问题. 问题重现: 如果按以下代码动态创建Rating控件

ASP.NET AJAX Advance Tips &amp;amp; Tricks (1)

CascadingDropDown在IE和Safari中的一个缺陷和解决方法 前言: ASP.NET AJAX Toolkit中的CascadingDropDown简单易用,但在IE和Safari中有一个比较明显的性能缺 陷,当数据量大,并且用户使用鼠标滚轮或键盘上下键选取选项时,这个缺陷非常明显.本文介绍通过修 改Toolkit源代码来解决这个问题.(这个问题应该会比较争议,也许很多人并不将其视为缺陷,视情况 而定吧) 问题重现: 大家可以到ASP.NET AJAX Toolkit官方展示页面

ASP.NET AJAX Advance Tips &amp;amp; Tricks (10)

解决使用AJAX Extender时的页面导出(Word/Excel)问题 前言: 有客户问到这么个问题:我们可以使用Response容易地将ASP.NET页面导出为Excel或Word.然而,如 果有AJAX Control Toolkit的Extender在页面上的话,则会发生错误(Extender control 'XXX' is not a registered extender control).我搜索了一下,ASP.NET forum里有很多这样的问题未能解决,故写了 这个解决方案,

ASP.NET AJAX Advance Tips &amp;amp; Tricks (9)

DropDownList在Firefox下的奇怪现象和解决方案--谁的BUG? 前言: 今天在ASP.NET Forum里面遇到了一个及其怪异的问题,一个看似非常简单的demo在IE及其它浏览器中 正常运行,然而在Firefox中却导致了奇怪的问题,使页面中的DropDownList死掉,经过研究,终于找到 了一个解决方案,但此问题是谁的Bug仍不得而知. 问题重现: 一个ScriptManager 一个DropDownList 一个UpdatePanel,内有一个Button 在按钮点击事件中