ASP.NET C# update Textbox

OP #3464093
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren