- PR -

Ajaxエラーについて

投稿者投稿内容
McCoy
会議室デビュー日: 2009/02/01
投稿数: 1
投稿日時: 2009-02-01 15:57
環境の問題かも知れませんね。
現在IEで開発中ですか?
試しにFireFoxをターゲットに指定して実行してみることを
お勧めします。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-02 13:32
一応動きましたが、このような感じであってますでしょうか?
(回答が見当違いだったらすいません)

大まかな変更点としては、
・scriptタグの部分を関数化
・その際、addhandlerを一部解除(load時のイベントはイベントにハンドルせずにそのまま実行させるようにした。)
・bodyのonloadでその関数を呼ぶ

でしょうか。
IE7,VWD Express 2008で確認しました。
※ 開発サーバーでも地図でましたね、APIキーはきちんと指定しました。

たぶんタイミングの問題じゃないかなぁと思います。

webサービスもコメントアウトしたままになってますが、そこは確認していないので。


コード:
<%@ Page Language="VB" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<script runat="server"> 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head id="Head1" runat="server"> 
<title>google map</title> 
</head> 
<body onload="load_aj()"> 
<form id="form1" runat="server"> 
<div> 


<asp:ScriptManager ID="manager" runat="server"> 

<%-- 
<Services>
<asp:ServiceReference Path="Scripts.asmx" /> 
</Services> 
--%>

<Scripts> 
<asp:ScriptReference Path="http://maps.google.com/maps?file=api&v=2&key=APIキー" /> 

</Scripts> 

</asp:ScriptManager> 

<script type="text/javascript">
    //<![CDATA[
    function load_aj() {
        var map = null;
        // Sys.Application.add_load(
        // function() {
            if (GBrowserIsCompatible) {
                map = new GMap2($get('pMap'));
                map.addControl(new GLargeMapControl());
                map.addControl(new GMapTypeControl());
                var pt = new GLatLng(35.635199, 139.7676);
                map.setCenter(pt, 12);
                map.setMapType(G_HYBRID_MAP);
            }
        // }
        // );
        Sys.UI.DomEvent.addHandler($get('list'), "change",
        function() {
            Scripts.GetMapInfo($get('list').value,
                function(result) {
                    var pt = new GLatLng(result.AxisY, result.AxisX);
                    var mark = new GMarker(pt);
                    map.clearOverlays();
                    map.addOverlay(mark);
                    map.setCenter(pt, 11);
                    var sb = new Sys.StringBuilder();
                    sb.append("<dl><dt><a href='");
                    sb.append(result.Url);
                    sb.append("'>");
                    sb.append(result.Subject);
                    sb.append("</a></dt><dd>");
                    sb.append(result.Descript);
                    sb.append("</dd></dl>");
                    GEvent.addListener(mark, 'click',
                        function() {
                            mark.openInfoWindowHtml(sb.toString());
                        }
                    );
                }
            );
        }
    );
    }    
       //]]> 
</script> 

<%-- テストにつかったリスト<asp:DropDownList ID="list" runat="server" ></asp:DropDownList> --%>

<asp:DropDownList ID="list" runat="server" DataSourceID="sds" DataTextField="名前" DataValueField="個人ID"></asp:DropDownList> 
<asp:SqlDataSource ID="sds" runat="server" ConnectionString="<%$ ConnectionStrings:MyDB %>" SelectCommand="SELECT 個人ID, 名前 FROM T_社員"></asp:SqlDataSource> 

</div> 
<asp:Panel ID="pMap" runat="server" Height="400px" Width="500px"></asp:Panel> 

</form> 
</body> 

</html>


スキルアップ/キャリアアップ(JOB@IT)