Я пытаюсь создать перетаскиваемый маркер с помощью Subgurim и считываю последние переменные в текстовые поля.
У меня все работает, кроме той части, где я помещаю координаты в текстовое поле.
Кодовое обозначение:
protected void Page_Load(object sender, EventArgs e){
if (SessionManager.User == null) {
string strscript = "<script language=javascript>window.top.close();</script>";
if(!ClientScript.IsStartupScriptRegistered("clientScript")) {
ClientScript.RegisterStartupScript(Page.GetType(), "clientScript", strscript);
}
}
else {
if (!Page.IsPostBack) {
gmap.Height = 400;
gmap.Width = 590;
gmap.enableDragging = true;
gmap.Language = "pt";
gmap.BackColor = Color.White;
gmap.enableDragging = true;
gmap.enableGoogleBar = true;
gmap.Language = "pt";
gmap.BackColor = Color.White;
GControl nav = new GControl(GControl.preBuilt.LargeMapControl3D);
GControl maptypes = new GControl(GControl.preBuilt.MenuMapTypeControl, new GControlPosition(GControlPosition.position.Top_Right));
GControl scale = new GControl(GControl.preBuilt.ScaleControl, new GControlPosition(GControlPosition.position.Bottom_Left));
GControl overview = new GControl(GControl.preBuilt.GOverviewMapControl, new GControlPosition(GControlPosition.position.Bottom_Right));
gmap.addControl(nav);
gmap.addControl(maptypes);
gmap.addControl(scale);
gmap.addControl(overview);
GLatLng pt=null;
int zoom = 16;
string lat = Request.QueryString["lat"];
string lon = Request.QueryString["lon"];
if (lon == null || lat == null) {
pt = new GLatLng(Helper.BASE_LAT, Helper.BASE_LON);
zoom = Helper.BASE_ZOOM;
}
else {
pt = new GLatLng(Convert.ToDouble(lat), Convert.ToDouble(lon));
}
gmap.setCenter(pt,zoom);
GMarkerOptions mOpts = new GMarkerOptions();
mOpts.draggable = true;
GMarker marker = new GMarker(pt,mOpts);
gmap.addGMarker(marker);
gmap.addListener(new GListener(marker.ID, GListener.Event.dragend,
string.Format(@"
function(overlay, point)
{{
var ev = new serverEvent('myDragEnd', {0});
ev.addArg({0}.getZoom());
ev.addArg(this.getPoint());
ev.send();
}}
", gmap.GMap_Id)
)
);
}
}
}
protected string gmap_ServerEvent(object s, GAjaxServerEventOtherArgs e) {
switch (e.eventName) {
case "myDragEnd":
string zoomLevel = e.eventArgs[0];
GLatLng point = GAjaxServerEventArgs.latlngFromString(e.eventArgs[1]);
txtLat.Text = "Hello";//point.lat.ToString();
txtLon.Text = "There";//point.lng.ToString();
break;
}
return string.Empty;
}
В основном я создаю перетаскиваемый маркер и прикрепляю к нему событие, которое обрабатывается последним методом, в котором выполняется присваивание ... которого не происходит.Текстовые поля по-прежнему отображаются пустыми.