Vraag & Antwoord

Programmeren

Van asp.net (C#) naar java script

22 antwoorden
  • Om Google Maps te kunnen gebruiken heb je o.a. coördinaten nodig. Die heb ik in een stukje java script staan. Maar nu wil ik die coördinaten in een database stoppen en ze vervolgens uitlezen met asp.net 2.0 en C#. Daarom moeten de coördinaten die ik dan inlees in variabelen of Sessions doorgeven naar dat stukje java script. Maar hoe doe ik dat? Dit de code voor het java script [code:1:f9a6912db2] <script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(Session["b"], Session["l"]), 17); map.addOverlay(new GMarker(new GLatLng(Session["b"], Session["l"]))); } } //]]> </script> [/code:1:f9a6912db2] Waar nu Session["b"], e.d. staat, staan normaal gesproken de coördinaten. Maar ik heb dus geen verstand van java script dus ik weet niet hoe dit precies te doen....
  • Kun je niet gewoon de ASP.NET code die deze pagina maakt ook de javascript laten genereren waarin je dan de variabelen meteen zet? Of denk ik nu weer eens te simpel?
  • Nou, of je te simpel denkt dat weet ik niet. Maar het gaat hier over Google Maps. De code krijg je van hen aangeleverd. Daar wil is dus asp omheen bouwen.
  • Heb je misschien [url=http://www.ondotnet.com/pub/a/dotnet/2003/09/15/aspnet.html]hier[/url] wat aan? En volgens mij heeft [url=http://www.codeproject.com/aspnet/LatLaysFlat-Part1.asp]hier[/url] iemand ook al gedaan wat jij wil. Maar ik heb het maar even vluchtig gelezen, dus ik kan me vergissen.
  • Hm, die tweede link had ik al bekeken maar daar had ik niets aan. iets duidelijker dan: ik heb dit als coördinaten in het stukje java script staan [code:1:c0e6b9068d]map.setCenter(new GLatLng(51.7170122263727, 5.36232590675354), 17); map.addOverlay(new GMarker(new GLatLng(51.7170122263727, 5.36232590675354)));[/code:1:c0e6b9068d] nu wil ik die getallen vervangen door een Session of een string, int of wat dan ook. Die vul ik met die getallen Dus laat ik zeggen: string [b:c0e6b9068d]lengte[/b:c0e6b9068d] = 51.7170122263727; string [b:c0e6b9068d]breedte [/b:c0e6b9068d]= 5.36232590675354 dan wordt het dus: [code:1:c0e6b9068d]map.setCenter(new GLatLng(lengte, breedte), 17); map.addOverlay(new GMarker(new GLatLng(lengte, breedte)));[/code:1:c0e6b9068d]
  • ik heb het kunnen verbouwen naar: [code:1:e33d2953c2] var map = new GMap2(document.getElementById("map")); var lengte = 51.7170122263727; var breedte = 5.36232590675354; map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(lengte, breedte), 17); map.addOverlay(new GMarker(new GLatLng(lengte, breedte))[/code:1:e33d2953c2] Wellicht niet wereldschokkend maar voor mij weer een stap verder. Nu moet dus in var lengte = 51.7170122263727 niet 51.7170122263727 staan maar bijvoorbeeld var lengte =Session("lengte"); Die Session("lengte") vul ik ergens anders.... Voor de goede orde, als ik var lengte = Session("lengte") gebruik werkt het niet.
  • Het was even puzzelen, maar met de hulp van een vriend ben ik er uit. Je moet gebruik maken van ClientScript.RegisterClientScriptBlock:[code:1:d379d9ab5d] protected void Page_Load(object sender, EventArgs e) { // dit moet je uiteraard vervangen ;-) Session["b"] = 5.36232590675354; Session["l"] = 51.7170122263727; // hier begint de echte code StringBuilder js = new StringBuilder(); js.AppendLine("//<![CDATA[ "); js.AppendLine("function load() {"); js.AppendLine("if (GBrowserIsCompatible()) {"); js.AppendLine("var map = new GMap2(document.getElementById(\"map\"));"); js.AppendLine("map.addControl(new GSmallMapControl());"); js.AppendLine("map.addControl(new GMapTypeControl());"); js.AppendLine("map.setCenter(new GLatLng(" + Session["b"].ToString().Replace(",",".") + ", " + Session["l"].ToString().Replace(",",".") + ", 17));"); js.AppendLine("map.addOverlay(new GMarker(new GLatLng(" + Session["b"].ToString().Replace(",",".") + ", " + Session["l"].ToString().Replace(",",".") + ")));"); js.AppendLine("}"); js.AppendLine("}"); js.AppendLine("//]]>"); // deze regel zorgt ervoor dat de functie load() wordt toegevoegd aan de html ClientScript.RegisterClientScriptBlock(GetType(),"load",js.ToString(),true); } [/code:1:d379d9ab5d] En in de html zorg je er voor dat de functie load() meteen na het laden wordt aangeroepen:[code:1:d379d9ab5d]<body onload="load();">[/code:1:d379d9ab5d]
  • Inmiddels heb ik vanmiddag een oplossing aangereikt gekregen die werkt. Maar ik denk dat jouw oplossing meer in de lijn ligt van hoe ik het uiteindelijk wil hebben. Ik ben je dus zeer erkentelijk voor je oplossing en de tijd die je er in hebt gestoken. Ik ga er morgen direct mee aan de slag. dus voor nu, bij voorbaat dank en ik zal je morgen laten weten hoe het afloopt.
  • Ben direct maar even begonnen, maar ik denk dat er wat teveel dubbele aanhalingstekens in staan. Ga ik even voor zitten.. :wink: hmmm, geen foutmeldingen meer maar ook niets zichtbaar... ik vraag me ook af waarom je die Replace er in hebt staan?
  • [quote:0d2441cdd3="Wiep Corbier"]Ik ben je dus zeer erkentelijk voor je oplossing en de tijd die je er in hebt gestoken.[/quote:0d2441cdd3]Graag gedaan, ik vind dit toch nog steeds het leukste deel van mijn werk :) [quote:0d2441cdd3="Wiep Corbier"]hmmm, geen foutmeldingen meer maar ook niets zichtbaar...[/quote:0d2441cdd3]Is de javascript code wel te zien als je de source van de gegenereerde pagina bekijkt? Heb de code namelijk wel even getest, en ik kreeg keurig een wereldkaart met een pijltje naar de coordinaten van jouw voorbeeld (ergens voor de kust van Somalie) [quote:0d2441cdd3="Wiep Corbier"]ik vraag me ook af waarom je die Replace er in hebt staan?[/quote:0d2441cdd3]Omdat ik de taalinstellingen van Windows op Nederlands heb ingesteld, worden bij floats de decimale punt vervangen door een komma. En de javascript functie wil graag punten...
  • [quote:6c24881b86="meneer_ed"] Heb de code namelijk wel even getest, en ik kreeg keurig een wereldkaart met een pijltje naar de coordinaten van jouw voorbeeld (ergens voor de kust van Somalie) [/quote:6c24881b86] Hmm, je hoort een kaart van 's-Hertogenbosch te krijgen :D
  • [quote:645e1b194b="Wiep Corbier"]Hmm, je hoort een kaart van 's-Hertogenbosch te krijgen :D[/quote:645e1b194b]Hmmm, lengte- en breedtegraden omwisselen levert inderdaad een meer herkenbaar plaatje op :o
  • hahaha, die meneer Ed :lol: Maar, ik heb het voor elkaar. Yes! Een kwartier geleden is het me gelukt om er ook nog eens een database aan te koppelen. Nu moet ik alleen nog de bijbehorende adresgegevens in een ballon tonen maar dan netjes onder elkaar. Ik krijg ze nu nog alleen maar achter elkaar in die ballon. Jij een idee meneer Ed?
  • [quote:63d92e14e6="Wiep Corbier"] Nu moet ik alleen nog de bijbehorende adresgegevens in een ballon tonen maar dan netjes onder elkaar. Ik krijg ze nu nog alleen maar achter elkaar in die ballon. Jij een idee meneer Ed?[/quote:63d92e14e6] Als de tekst via javascript wordt getoond, dan zou "\n" aan het einde van een regel moeten werken.
  • hmm, ik heb de hele tekst gemengd met request.querystrings en nu moet ik: string Voornaam = Request.QueryString["Voornaam"]; string ruimte = ", "; string Achternaam= Request.QueryString["Achternaam"]; eigenlijk onder elkaar zien te krijgen. Ben met je tip bezig geweest maar krijg het niet voor elkaar...
  • [quote:8687793ef2="Wiep Corbier"]nu moet ik: string Voornaam = Request.QueryString["Voornaam"]; string ruimte = ", "; string Achternaam= Request.QueryString["Achternaam"]; eigenlijk onder elkaar zien te krijgen. [/quote:8687793ef2]Dus je wil dit: [code:1:8687793ef2]meneer , ed[/code:1:8687793ef2] ? Dan zal je ervoor moeten zorgen dat de newline (\n) ook in de javascript-functie terecht komt. Bijvoorbeeld door een StringBuilder object te gebruiken: [code:1:8687793ef2] StringBuilder sb = new StringBuilder; sb.AppendLine(Request.QueryString["Voornaam"] + "\\n"); sb.AppendLine(",\\n"); sb.AppendLine(Request.QueryString["Achternaam"] + "\\n"); [/code:1:8687793ef2]Of je kan het zo doen:[code:1:8687793ef2]String Voornaam = Request.QueryString["Voornaam"] + "\\n";[/code:1:8687793ef2]
  • Hij weigert het maar dat kan komen omdat het een balloon van Google is...
  • Krijg je foutmeldingen?
  • nee, maar hij schuift de achternaam 2 posities naar rechts....
  • [quote:09e9648f59="Wiep Corbier"]nee, maar hij schuift de achternaam 2 posities naar rechts....[/quote:09e9648f59]Hmm, misschien een stomme vraag, maar staan er geen spaties voor de achternaam?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.