Forum: PC-Programmierung ASP.NET C# update Textbox


von Jan S. (jannemann)


Lesenswert?

Hallo,
ich möchte auf einer asp.net Seite in C# den Wert einer Textbox im 
Programmcode ändern.
Ich nutze die google-maps-subgurim API; bei einem Klick in die Karte 
lese ich die Koordinaten aus und möchte diese dann in eine Textbox 
eintragen.
Leider werden die Textbox Daten in nach dem unload immer wieder 
zurückgesetzt und nicht an den client gesendet.
Die Textbox ist also immer leer. (im PageLoad Eventhandler werden keine 
Daten überschrieben).

Was muss ich tun, um die Daten in der Textbox anzuzeigen?

Viele Grüße
Jan

hier der passende Code dazu:
1
Initialisierung der Textbox und der Karte:
2
3
<asp:TextBox ID="TbLatitude" runat="server" Width="100%"></asp:TextBox>
4
...
5
<cc1:GMap ID="GMap1" runat="server" enableServerEvents="True" OnClick="GMap1_Click" Width="100%" Height="100%"/>
...
1
C# Code:
2
3
protected void Page_Load(object sender, EventArgs e)
4
{
5
     if (!IsPostBack)
6
     {
7
        BuildMap();                
8
     }
9
10
}
11
private void BuildMap()
12
{
13
     GMap1.Add(new GControl(GControl.preBuilt.LargeMapControl));
14
     GMap1.enableHookMouseWheelToZoom = true;
15
     GMap1.Language = "de";
16
17
     GLatLng goe = new GLatLng(51.53933, 9.93406); //Göttingen
18
     GMap1.setCenter(goe, 11);
19
     GInfoWindow window = new GInfoWindow(goe, "<div > </div>"); //<div style=\"height:300px;\"><blink>Loading...</blink></div>
20
     string marker_func ="function(marker, point) {" + window.ToString(GMap1.GMap_Id) + "}";
21
22
     GMap1.Add(new GListener(GMap1.GMap_Id, GListener.Event.click, marker_func));        
23
}
...
1
Eventhandler:
2
3
protected string GMap1_Click(object s, GAjaxServerEventArgs e)
4
{
5
     inverseGeocodingManager igeoManager = new inverseGeocodingManager(e.point, "es");
6
     inverseGeocoding iGeos = igeoManager.inverseGeoCodeRequest();
7
8
     geoName geo;
9
     if (iGeos.geonames.Count > 0)
10
     {
11
         geo = iGeos.geonames[0];
12
13
         this.latitude= geo.initialPoint.lat.ToString(); //Breite
14
         this.longitude= geo.initialPoint.lng.ToString(); //Länge
15
16
         string infowindow = "<div style=\"height:70px; width:200px;\"> <b>Position</b><br/>" + "Breite: " + geo.initialPoint.lat.ToString() + "<br/>Länge: " + geo.initialPoint.lng.ToString() + "</div>";
17
18
         GInfoWindow window = new GInfoWindow(e.point, infowindow, true);
19
20
!*!*!    TbLatitude.Text = this.latitude;
21
!*!*!    TbLongitude.Text = this.longitude;
22
                
23
         return window.ToString(e.map);
24
     }
25
     else
26
     {
27
         return string.Empty;
28
     }
29
}
Der Code für die Karte kommt von: 
http://de.googlemaps.subgurim.net/ejemplos/ejemplo_97750_GeoCoding-inverso.aspx
Das Programm springt in den Eventhandler hinein und die Textboxen 
erhalten die richtigen Werte. Wenn ich mir die folgenden Events ansehe, 
kann ich die Daten bis zum Unload-Ereignis verfolgen. Beim nächsten Init 
Ereignis sind die Daten wieder weg. Ich habe auch schon versucht, die 
Daten über die Session zwischenzuspeichern und dann zu laden. Ging aber 
auch nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.