0

我在aspx.net中编写了这段代码,它运行良好,但是当写入内容页面时,它不会。有人知道为什么吗? 注意:我使用Artem GoogleMap控件并在其上设置图钉,然后获取其位置。为什么此代码不能在内容页面中工作?

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<artem:GoogleMap ID="GoogleMap1" runat="server" 
    EnableMapTypeControl="False" MapType="Roadmap" >   
</artem:GoogleMap>  
<artem:GoogleMarkers ID="GoogleMarkers1" runat="server" 
    TargetControlID="GoogleMap1" onclientpositionchanged="handlePositionChanged"> 
</artem:GoogleMarkers> 
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> 
<asp:HiddenField ID="Hidden1" runat="server" /> 
<asp:Button ID="Button2" runat="server" Text="Button2" onclick="Button2_Click" /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <asp:Button ID="Button1" runat="server" Text="Split" onclick="Button1_Click" /> 
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
    </ContentTemplate> 
</asp:UpdatePanel> 

<script type="text/javascript"> 
    var list = document.getElementById("Label1"); 
    function handlePositionChanged(sender, e) { 
    printEvent("Position Changed", sender, e); 
    } 
    function printEvent(name, sender, e) { 
    var position = e.latLng || sender.markers[e.index].getPosition(); 
    document.getElementById('Label1').innerHTML = position.lat(); 
    document.getElementById('Label2').innerHTML = position.lng(); 

    document.getElementById('<%= Hidden1.ClientID %>').value = position.lat(); 

    } 
</script> 


protected void Page_Load(object sender, EventArgs e) 
{ 
    this.GoogleMap1.MapType = Artem.Google.UI.MapType.Roadmap; 
    this.GoogleMap1.Zoom = 12; 
    if (!Page.IsPostBack) 
    { 
     GoogleMaps.LocationServices.GoogleLocationService obj = new GoogleMaps.LocationServices.GoogleLocationService(); 

     GoogleMaps.LocationServices.AddressData add = new GoogleMaps.LocationServices.AddressData(); 
     add.City = "somewhere"; 
     add.Country = "somewhere"; 
     GoogleMaps.LocationServices.MapPoint mp = new GoogleMaps.LocationServices.MapPoint(); 
     mp.Latitude = 29.6248771158687; 
     mp.Longitude = 52.5227701663971; 
     double x = mp.Latitude; 
     GoogleMaps.LocationServices.MapPoint pt = obj.GetLatLongFromAddress(add); 
     GoogleMap1.Latitude = mp.Latitude; 
     GoogleMap1.Longitude = mp.Longitude; 
    } 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    TextBox2.Text = Hidden1.Value; 
} 

protected void Button2_Click(object sender, EventArgs e) 
{ 
    string add = TextBox1.Text; 
    GeoRequest request = new GeoRequest(add); 
    GeoResponse response = request.GetResponse(); 
    GeoLocation location = response.Results[0].Geometry.Location; 
    double latitude = location.Latitude; 
    double longitude = location.Longitude; 
    GoogleMap1.Latitude = latitude; 
    GoogleMap1.Longitude = longitude; 

    Artem.Google.UI.Marker mk1 = new Artem.Google.UI.Marker(); 
    mk1.Draggable = true; 
    mk1.Address = add; 
    GoogleMarkers1.Markers.Add(mk1); 
} 

更新: 我改变这部分代码和它的作品,但不知道为什么:

document.getElementById('<%= Label1.ClientID %>').innerHTML = position.lat(); 
+0

什么是“list”变量?没有什么是指它。 – Pointy

+0

另外,究竟**有哪些错误?这些功能如何被调用?哪里?什么时候? – Pointy

+1

将它写入内容页面是什么意思? – Erwin

回答

0

我认为你需要添加的ScriptManager标签在母版页的ScriptManagerProxy标签在contetn页。

+0

它没有解决我的问题,但感谢您的回复。 –

相关问题