[ASP.NET] data in client javascript -> server C#

Pagina: 1
Acties:

  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Ik probeer nu al een tijdje om vanuit data (teksten) van de client naar de server te krijgen. Het probleem is als volgt: ik maak gebruik van een HTML/javascript WYSIWYG (=What You See Is What You Get voor de n00bs) editor waar gebruikers hun teksten in kunnen voeren en op kunnen maken. Deze editor heb ik bij macromedia op de site gevonden. Zie http://www.geocities.com/skiwi_k/tweakers/TextEditor.html voor een voorbeeld.

Met de volgende javascript functie kan ik de html tekst te pakken krijgen (client side):
code:
1
2
3
function copyValue() {
    var theHtml = document.frames("myEditor").document.frames("textEdit").document.body.innerHTML;
  }


Ik maak dus gebruik van het innerHTML commando. maar wat als ik nu mijn formulier submit? Hoe krijg ik dan deze tekst in mijn C# applicatie?? Kan ik javascript strings in C# benaderen? Ik heb al geprobeerd om vanuit C# de innerHTML op te vragen van het iframe maar om de een of andere reden krijg ik dan een lege string terug.

Iemand die mij met een tip een duw in de goede richting kan geven?
Thanks!

[edit:]
Vergeten te vermelden: ik maak gebruik van een session in ASP. Is er misschien een mogelijkheid om die tekst in een session variabele te krijgen zodat ik deze in C# kan opvragen??

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

Als je niet te moeilijk wilt doen: www.activeup.com

edit:
pak eerst maar eens een goed boek over het ontwikkelen in ASP.NET. Je moet met de codebehind nl gewoon bij die content kunnen komen. Er is al een namespace met HTML Controls.

oogjes open, snaveltjes dicht


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kan natuurlijk gewoon een <input type="hidden" id="textbox" runat="server> toevoegen en zorgen dat je voor je submit( b.v. bij elke onchange in de editor ) zorgen dat de copyvalue de textbox.value gelijk zet aan de innerHTML. Daarna kan je in je server code gewoon textbox.value gebruiken

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 30-08 15:34

gorgi_19

Kruimeltjes zijn weer op :9

In dat geval kan je net zo goed Viewstate gebruiken; ik volg het nog niet helemaal, maar eventueel zou Context ook mogelijk moeten zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
gorgi_19 schreef op 21 oktober 2002 @ 20:11:
In dat geval kan je net zo goed Viewstate gebruiken; ik volg het nog niet helemaal, maar eventueel zou Context ook mogelijk moeten zijn.
Volgens mij gaat het erom dat de wysiwyg editor gerealiseerd word door een iFrame. Deze kan je daardoor niet uitlezen in je server code. Daarom moet je deze op een of andere manier copieren naar een server control wat je wel op de server in je codebehind kan uitlezen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 30-08 15:34

gorgi_19

Kruimeltjes zijn weer op :9

rwb schreef op 21 oktober 2002 @ 20:21:
[...]


Volgens mij gaat het erom dat de wysiwyg editor gerealiseerd word door een iFrame. Deze kan je daardoor niet uitlezen in je server code. Daarom moet je deze op een of andere manier copieren naar een server control wat je wel op de server in je codebehind kan uitlezen.
In dit geval moet ik rustig wakker worden en eens goed leren lezen... |:( :+

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • alley
  • Registratie: Mei 2002
  • Laatst online: 18-08 20:40

alley

ahuh

Aanvulling op rwb:

Vanuit je codebehind een Page.RegisterOnSubmitStatement() gebruiken om een js function aan te roepen, en van daaruit de content van je iFrame naar een hidden field verplaatsen.

I am always doing that which I can not do, in order that I may learn how to do it. (Pablo Picasso)


  • skiwi
  • Registratie: Februari 2001
  • Laatst online: 05-04 14:13
Het is me eindelijk gelukt: ik had al een tijdje zitten stoeien met een hidden field maar kreeg het maar niet voor elkaar om de javascript functie aan te roepen vlak voordat de zooi gesubmit werd. Met een RegisterOnSubmitStatement() is dat perfect gelukt!

Thanks!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik weet trouwens niet precies hoe je script werkt maar het is mischien mooi om je script zo te maken dat je je WYSIWYG editor gewoon kan benaderen als een textbox. Zo heb ik dat tenminste gedaan bij het scriptje wat ik heb gemaakt. Dit scriptje veranderd de textbox eigenlijk gewoon in een hidden field met dezelfde naam als de textbox en creert daarna een internal frame op de locatie van de textbox. Op deze manier kan ik zelfs gewoon een <asp:textbox> gebruiken en hoef ik alleen Init( textboxnaam ) aan te roepen aan de clientside en aan de server kant merk je het verschil niet eens. Als je het echt mooi wil doen kan je natuurlijk ook nog een subclass van textbox maken en deze gewoon automatisch het script mee laten sturen.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1