こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

RegisterStartupScriptについて

vs2005 & asp.net(vb)で開発を行っています。

リクエストパラメータで渡した情報から、DB参照し、
取得した住所からGooglemapを表示しようとしています。
db接続などは問題なく取得できていますが、
JavaScript部のfunction以降に入っていないように思います。

Googlemapを表示するにはどのように記述すれば良いでしょうか。


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

'パラメタ取得
http://www.hoge.jp/hoge.aspx?id=gegege
String hoge = Page.Request.QueryString.Get("id");

'db接続
objRs. = CreateObject("ADODB.Connection")
objRs..Open("dsn=xxx;uid=xxx;pwd=xxx;")
objRs..CursorLocation = 3

'sql発行
strSql = ""
strSql = "select address from table where id=' " & id & "'"
rs = objRs.Execute(strSql)

'住所取得
'strAddress = rs("address").value
strAddress = "大阪駅"'←テストのためセット

Dim sScript As New System.Text.StringBuilder

sScript.Append("var map=new GMap2(document.getElementById(""map""));")
sScript.Append("var address = '" & StrAddress & "';")
sScript.Append("var Geocoder = new GClientGeocoder();")
sScript.Append("alert('1');")'←表示される
sScript.Append("function showAddress(address) {")
sScript.Append("alert('2');")←表示されない
sScript.Append("geocoder.getLatLng(")
sScript.Append("address,")
sScript.Append("function(point) {")
sScript.Append("if (!point) {")
sScript.Append("alert(address);")
sScript.Append("} else {")
sScript.Append("var map = new GMap2(document.getElementById(""map""));")
sScript.Append("map.setCenter(point, 13);")
sScript.Append("var marker = new GMarker(point);")
sScript.Append("map.addOverlay(marker);")
sScript.Append("marker.openInfoWindowHtml(address);")
sScript.Append("}")
sScript.Append("}")
sScript.Append(");")
sScript.Append("}")

Me.ClientScript.RegisterStartupScript(Me.GetType(), "key", sScript.ToString, True)
end if

投稿日時 - 2012-01-19 04:29:07

QNo.7253078

すぐに回答ほしいです

質問者が選んだベストアンサー

> function showAddress(address) {
> (省略)
> }

えと、JavaScriptでこのように記述した場合のプログラムの意味はわかりますか?
showAddressという関数を定義してるだけですよね。
これを実行するためにはどこかでこの関数を呼び出す必要があります。

システムの仕組みによっては関数の定義だけしておいて別の場所から呼ばれることを待っている
という作りもありますけど、その場合も呼ばれないことには実行されません。

なにか抜けてるのかな?

投稿日時 - 2012-01-19 10:41:48

お礼

ありがとうございます!理解できました。

Dim StrAddress As String = "大阪駅"
Dim sScript As New System.Text.StringBuilder
sScript.Append("var map=new GMap2(document.getElementById(""map""));")
sScript.Append("var address = '" & StrAddress & "';")
sScript.Append("var Geocoder = new GClientGeocoder();")
sScript.Append("Geocoder.getLatLng(address, moveTo);")

sScript.Append("function moveTo(latlng){")
sScript.Append("if (latlng){")
sScript.Append("map.setCenter(latlng, 13);")
sScript.Append("var marker = new GMarker(latlng);")
sScript.Append("map.addOverlay(marker);") sScript.Append("marker.openInfoWindowHtml(address);")
sScript.Append("}else{")
sScript.Append("alert('住所から緯度経度に変換できません');")
sScript.Append(" } }")

投稿日時 - 2012-01-19 11:51:06

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問