Код ASP.NET в информационном окне Google Maps

Уточнение:

Проще говоря, я хотел бы поместить ASP.NET UpdatePanel в информационное окно Google Maps. Это означало бы, что пользователи могли взаимодействовать с моим приложением из информационного окна, не обновляя страницу и не закрывая текущее открытое информационное окно.

Кто-нибудь знает возможно ли это?


Обновление:

Спасибо всем, кто ответил. Очень признателен.

Из ответов я понял следующее:

  • у панели обновлений есть своя «загадочная механика», которая может вызывать некорректную работу UpdatePanel внутри InfoWindow. Переход к более прямому пути использования JQuery для выполнения вызовов ajax к простым веб-службам должен устранить скрытую сложность UpdatePanel и включить нужную мне функциональность.

Меня все еще заинтриговало, почему подход UpdatePanel не работает и почему его использование «сломает модель» Google Maps, когда, конечно, UpdatePanel просто отображает как HTML и javascript со ссылкой на объект XMLHttpRequest.


Можно ли разместить код ASP.NET в информационном окне Google Maps?

Я хотел бы разместить UpdatePanel с некоторыми AJAXified asp: Button внутри информационного окна.

AFAICT вы просто предоставляете HTML для размещения в информационном окне в виде строки, поэтому думал о рендеринге UserControl в строку и размещении этой строки в информационном окне для отображения браузером. Кто-нибудь знает, может ли это сработать?

Если это невозможно в картах Google, кто-нибудь знает, возможна ли такая реализация с соответствующей технологией Virtual Earth?


person Ben Aston    schedule 31.03.2009    source источник
comment
Это выглядит как неправильный подход, и он нарушает модель как Google Maps, так и Virtual Earth, которые используют клиентский Ajax. Если вы можете объяснить свою общую цель с помощью кнопки в информационном окне, мы сможем предложить вам альтернативные идеи или решения.   -  person Jose Basilio    schedule 21.05.2009
comment
Привет, Хосе, не могли бы вы пояснить, почему это нарушает модель Google Maps. Карты Google используют Ajax, но я не понимаю, как это исключает возможность размещения панели обновлений внутри информационного окна, поскольку информационное окно отображается как HTML и Javascript, которые обычно можно без проблем вставить в информационные окна. Мы очень ценим любую дополнительную информацию, которую вы можете предоставить.   -  person Ben Aston    schedule 24.05.2009


Ответы (6)


Хосе Базилио прав. Вместо этого используйте $ jquery Live Events и поместите обычный HTML в информационное окно, а затем используйте вызовы Ajax с jQuery, чтобы получить желаемую интерактивность. Перефразируйте проблему.

person Scott Hanselman    schedule 22.05.2009
comment
Привет, Скотт. Действительно цените ваш вклад. Я еще не знаком с $ jquery Live Events, но я рассмотрю их как возможное решение. - person Ben Aston; 24.05.2009
comment
Награда присуждена Скотту, потому что, хотя это не дает мне полного понимания причин, он был первым (хотя и из многих), кто предложил этот путь в ответ. Благодарим Хосе Базилио за его комментарий. - person Ben Aston; 27.05.2009

VirtualEarth имеет интеграцию tigether с SilverLight, что должно означать, что у вас будет больший контроль .NET над вашим картографическим веб-приложением. В большинстве реализаций Google Maps, которые мы сделали, мы обычно просто используем чистые решения HTML / JavaScript / CSS для создания функциональности AJAX. Таким образом, мы внедрили бы HTML / javascript в класс InfoWindow для любых необходимых нам настраиваемых функций.

person Blake Blackwell    schedule 21.05.2009

Рассмотрим другой подход и по возможности. Что вы действительно ищете, так это возможность реагировать на событие на стороне сервера. Может быть, что-то вроде этого, если вам действительно и действительно нужно реагировать на события на стороне сервера.

http://windyroad.org/2006/07/25/event-driven-ajax-part-1-pushing-server-side-events/

Как только вы обрабатываете события на клиенте в javascript, вы можете делать с картой все, что захотите.

person Martin Murphy    schedule 27.05.2009

Я не уверен, что воспользуюсь этим подходом, но если вы хотите получить код ASP.NET в информационном окне, вы можете использовать iframe.

В качестве альтернативы рассматривали ли вы элемент управления ASP.NET, такой как элемент управления GoogleMap, который будет выполнять всю интеграцию за вас ?

Богатый

person kim3er    schedule 22.05.2009
comment
Я попытался использовать упомянутый вами элемент управления, но до сих пор не смог заставить панель обновлений работать из информационного окна (без сомнения, по причинам, указанным Хосе Базилио и Скоттом Хансельманом), хотя элементы управления ASP.NET могут быть добавлены в информацию окно с помощью этого элемента управления довольно удобно. - person Ben Aston; 24.05.2009
comment
Я думаю, что хитрость в том, что информационное окно не существует, пока оно не создано JavaScript. В этом сценарии я бы использовал jQuery и веб-службы ASP.NET для заполнения окон по мере необходимости. Насколько я понимаю, Google Map Control - хороший вариант, если вы хотите сохранить всю свою логику в коде сервера и делегировать JavaScript в API. Что касается того, почему это не работает, боюсь, я редко работаю с UpdatePanels. Богатый - person kim3er; 26.05.2009
comment
Автор элемента управления Google Map обсуждал это, но не конкретно о UpdatePanel: googlemap .codeplex.com / Thread / По сути, вы создадите свой собственный элемент управления, который назначаете свойству Marker.InfoWindow во время выполнения. Все, что отображается в вашем настраиваемом элементе управления, помещается в информационное окно. Может работать? - person Matt Sherman; 27.05.2009

UpdatePanel! = AJAX. Взгляните на использование jQuery для выполнения вызовов Ajax ($ .ajax) и создания простых веб-сервисов и т. Д. чтобы достичь того, что вам нужно. Хотя технически вы можете каким-то образом втиснуть туда UpdatePanel, это того не стоит.

Посмотрите здесь отличный пример вызова AJAX / веб-методов с помощью jQuery.

person Nicholas    schedule 27.05.2009
comment
Спасибо, Николай. Ссылка, которую вы предоставляете, является полезным ресурсом. Не могли бы вы пояснить, что вы имеете в виду, говоря, что UpdatePanel не является Ajax. Я понимаю, что такое ajax, используя XMLHttpRequest для передачи информации на сервер. Конечно, это все, что делает UpdatePanel? - person Ben Aston; 27.05.2009

Вы смотрели на ExtInfoWindow? контроль? Поскольку вы не указали свою проблему, я не могу сказать, является ли это решением, но, похоже, здесь следует упомянуть об этом.

person cdonner    schedule 29.05.2009