Virtual Earth map внутри ASP.NET контейнера
От: Madkinder  
Дата: 16.10.07 12:03
Оценка:
Приветсвую, all.
Задача: поместить карту Virtual Earth внутрь контейнера из библиотеки AjaxControlToolkit, в частности TabContainer. Вот код:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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 runat="server">
    <title>Untitled Page</title>

    <script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>
    <script type="text/javascript">
    function LoadMap()
    {
        var map = new VEMap("myMap");
        map.LoadMap();
    }
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
        <div>
            <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
                <cc1:TabPanel ID="TabPanel1" runat="server" HeaderText="TabPanel1">
                    <ContentTemplate>
                        <div id="myMap" style="width: 400px; height: 400px; position: relative; border: red thick solid;" />
                    </ContentTemplate>
                </cc1:TabPanel>
            </cc1:TabContainer>
            
            <input type="button" value="Init Map" onclick="LoadMap();" />
        </div>
    </form>
</body>
</html>


В таком виде всё работает замечательно: нажимаем кнопочку -- карта появляется. Но если поместить LoadMap() в <body onload> или через Sys.Application.add_load(), то карта хоть и появляется, но управлять её совершенно невозможно -- карта смещена куда-то влево-вверх. Такое впечатление, что контрол не знает своего точного позиционирования на страничке.
Если же <div id="myMap" /> вынести из контейнера (в данном случае ТабПанели), то тоже всё работает нормально.

К сожалению ни одного примера, где Virtual Earth использовался бы внутри контейнера я не нашёл, хотя усердно гуглил 2 дня.

С уважением, Madkinder
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.