2012-09-10 5 views
0

Google지도 apiv3을 사용하여 웹 사이트에서 작업하고 있습니다. button_click 및 javascript 함수 뒤에있는 코드를 사용하여 일부 논리를 실행하는 업데이트 패널에 단추가 있습니다.업데이트 패널을 사용할 수 없습니다.

버튼이 업데이트 패널에 있기 때문에 방화 광의 감시 윈도우에서 아무 것도 볼 수 없으며 자바 스크립트 기능에서 내 브레이크 포인트도 작동하지 않습니다. 업데이트 패널이 없으면 시계의 실행 흐름을 볼 수 있으며 모든 것이 잘 작동하지만 맵에 다시로드됩니다. 영문에서

코드 :

<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:Button ID="Button1" runat="server" style="z-index: 1; left: 573px; top: 146px; position: absolute" Text="Show route" onclick="Button1_Click1"/> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click"/> 
     </Triggers> 
    </asp:UpdatePanel> 

Button_Click1 :

protected void Button1_Click1(object sender, EventArgs e) 
{ 
    using (con = new MySqlConnection("server=localhost; uid=root;password=as64ws;database=Gmaps")) 
    da = new MySqlDataAdapter("select * from routes where uid='a1'", con); 
    da.Fill(ds, "mroute"); 
    foreach (DataRow r in ds.Tables[0].Rows) 
    { 
     uroute.Add(r["latlng"].ToString()); 
    } 
    croute = new string[uroute.Count]; 
    croute = uroute.ToArray(); 
    hdncroute.Value = string.Join("&", croute); 
    ScriptManager.RegisterClientScriptBlock(this, typeof(Button), "routes", "droute()", true); 
} 

자바 스크립트 :

function droute() 
{ 
    var route=[]; 
    var temp; 
    temp = document.getElementById('<%= hdncroute.ClientID %>').value; 
    route= temp.split('&'); 
    //Loop to add locations and draw line 
    var path= polyline.getPath(); 
    for(var i=0;i<route.length;i++) 
     { 
      var input= route[i]; 
      var ltln = input.split(",",2); 
      var lat=parseFloat(ltln[0]); 
      var lng=parseFloat(ltln[1]); 
      var pos= new google.maps.LatLng(lat,lng); 
      var marker= new google.maps.Marker({position:pos,map:map}); 
      path.push(route[i]); 
      google.maps.event.addListener(marker,'click',showiwindow); 
     } 
    function showiwindow(event) 
    { 
    iwindow.setContent("<b>Coordinates are:</b><br/>Latitude:"+event.latLng.lat()+"<br/>Longitude:"+event.latLng.lng()); 
    iwindow.open(map,this); 
    } 
} 

나는 값이지도에 표시 될 얻을 캔트. 업데이트 패널의 버튼이나 업데이트 패널의지도를 배치해야합니까? 어디서 잘못 가고 있습니까?

+0

이 질문은 Google지도와 관련이 없습니다. – Marcelo

+0

이 질문과 관련된 대부분의 답변은 다시로드 할 때 양식 데이터의 나머지 부분을 풀지 않아서 업데이트 패널을 사용하는 것과 비슷합니다. 하지만 내 경우에는 데이터를 잃어 버리기 때문에 맵을 다시로드하지 않아야합니다. 현명한 소리 야? – Cdeez

+0

왜 ASP/MySQL을 사용하고 있습니까 ?? PHP/Mysql은 Ajax 또는 JQuery와 함께 사용하는 많은 맵 예제에서 더 좋습니다 –

답변

1

나는 당신의 논리의 좋은 부분을 없앨 것이다.

버튼을 클릭하면 jQuery 아약스 게시물을 코드 비헤이비어의 webservice에 게시하여 아약스 게시물로 배열을 반환 한 다음 아약스 게시물의 성공 부분에서 자바 스크립트 루틴을 트리거합니다. 내가 위에서 설명한 무엇

http://dotnetguts.blogspot.com/2012/01/jquery-ajax-examples-by-calling-aspnet.html

내가 거의 모든 구글 전화를 매핑 내의 ....... 나는 페이지의 수백에 가까운이 일을 더 적절한 방법을 보지 않는 방법입니다 나는이 주제에 대해 읽었습니다. 이런 식으로하는 방법에 대해 더 알고 싶다면 알려 주시기 바랍니다.

다음은 jquery ajax 게시물을 작성하는 방법을 설명하는 또 다른 좋은 페이지입니다. :

Call code behind method from Jquery

0

UpdateMode = "조건부"로 설정하고 단추를 AsynPostBacktrigger로 설정하십시오. 문제가 해결 될지도 모릅니다.

관련 문제