Как обновить div с помощью Reimer ASP.NET control? - PullRequest
2 голосов
/ 22 января 2012

Я использую Reimers ASP.NET, который великолепен. Но сейчас у меня небольшая проблема. Я добавляю два булавки на карту, как вы можете видеть в следующем коде ниже. Когда я щелкаю эти маркеры на карте, выполняется метод map_OverlayClick, но он не изменяет текст в divTest. Это также может быть метка, текстовое поле или что-то еще. Что я могу сделать, чтобы обновить этот div новым текстом?

Я пытаюсь сделать что-то похожее на this с помощью элемента управления Reimers.

Карта управления Reimers asp.net

Default.aspx:

<%@ Register Assembly="Reimers.Google.Map" Namespace="Reimers.Google.Map" TagPrefix="Reimers" %>
   <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
      <Reimers:Map ID="Map1" runat="server" Width="400" Height="400" DefaultMapType="Terrain">
   </Reimers:Map>
<div id="divTest" runat="server" />

Код здесь:

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            divTest.InnerHtml = "First div text...";
            LatLng laln = new LatLng();
            laln.Latitude = 65;
            laln.Longitude = -19;

            Marker marker = new Marker(65.4, -18.5);
            Map1.Overlays.Add(marker);

            Marker marker1 = new Marker(65.4, -18.3);
            Map1.Overlays.Add(marker1);

            Map1.Zoom = 7;
            Map1.Center = laln;
        }

        Map1.OverlayClick += map_OverlayClick;
    }

    void map_OverlayClick(object sender, OverlayEventArgs e)
    {
        divTest.InnerHtml = "Second div text..";
    }

1 Ответ

0 голосов
/ 23 января 2012

Если вы посмотрите этот учебник , то увидите, что шаблон должен назначать команду JavaScript для свойства MapCommand аргументов события (OverlayEventArgs).

Inв вашем случае вам нужно выполнить:

document.getElementById("divTest").innerHTML = "Second div";

Таким образом, вы должны назначить эту команду MapCommand, например, так:

e.MapCommand = "document.getElementById(\"divTest\").innerHTML = \"Second div\";";

Если вы используете jQuery или какую-либо другую клиентскую сторонуFramework, вы, конечно, можете сослаться на это, поскольку элемент управления map просто выполняет JavaScript, который вы передаете ему с сервера.

Лучшим вариантом, вероятно, является установка команды для соответствующего клиентского обработчика (фиктивный код: Marker.ClientsideHandlers.OnClick = "ваш код JavaScript"), если вам не требуется обработка на сервере.

...