JavaScript & C# (WYSIWYG i ASP.NET)

Tags:    asp.net

Hej Udviklere.

Jeg er igang med at lave en WYSIWYG editor i asp.net (C#). Det går også fint, set bort fra det problem jeg er stødt ind i.

De ting jeg har lavet til editoren er i Javascript. Resten er i c#.

Når jeg tryller på "gem" knappen vil jeg ved javascript gemme indholdet fra min <iframe> i et input felt, så jeg på næste side kan request formen.

Problemet er at jeg grundet min event handler på knappen, ikke kan eksekvere den funktion i javascript der skal lægge indholdet af min iframe i input feltet.

Hvordan kan jeg løse det problem?

Javascript:
<pre>
<script language="javascript">
function init()
{
iContent.document.designMode = 'On';
}

//Function der gemmer indholdet
//af iContent i en textbox
function saveInVariable()
{
variable var htmlCode = iContent.document.body.innerHTML;
document.frmWYS.txtHidden.value = HtmlCode;
}
</script>
</pre>

.NET / HTML:
<pre>
<body onload="init()">
<form method="post" id="frmWYS" runat=server>
<asp:TextBox id="txtHidden" visible=false runat=server />
<iframe id="iContent" runat=server></iframe>
<asp:Button ID="btnSubmit" Text="Gem" runat=server />
</form>
</body>
</pre>



hvad med? <form onsubmit="saveInVariable();"

ikke asp koder, men kan da ikke forestille mig at man ikke kan sætte de forskellige event handlers på den måde.

ville sinke min mening om ASP væsentlig mere en den allerede er :).
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



alternativt kan du i din eventhandler på knappen udskrive

Response.Write("<script>saveInVariable()</script>");


Nørden > du har læst de forkerte artikler eller totalt uvidende om asp.net hvis du mener det er så elendigt :)


Ret uvidende
Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk



Pudsigt at du er ved at lave en editor, jeg er lige blevet færdig med en WYSIWYG editor. Med hensyn til at gemme den kode der bliver genereret, så gør jeg det med AJAX, dvs uden at lave en refresh så lader jeg mit javascript kode kalde en metode i min ASP.NET fil, som så står for at gemme. Alternativt kan du kigge lige på execCommands saveas (mener den hedder sådan) den kan gemme til en fil.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



[Redigeret d. 12/08-05 13:55:44 af Brian Hvarregaard]



Hej,

Jeg har prøvet Jeres løsninger (på nær AJAX), uden held.

Nørden > Det kan godt være at det bare er mig der er en spasser til JS, men det som jeg har prøvet, kan jeg ikke ved brug af javascript ændre på en value i en .net kontrol.

Jokke Jensen > Jeg har min edit.aspx side og min edit.cs side. Min event handler er placeret i edit.cs, hvilket ikke gør det muligt (for mig) at kalde en Javascript funktion fra edit.aspx..

I skulle ikke ligge inde med nogle extra løsninger vel :|?

Tak for jeres tid.

Kenneth



Jo.. alting er muligt med i asp.net :), sådan plejer jeg at se på det..

Sorry, men jeg antog at du var lidt mere grøn :)

Med Webcontrols er det muligt, som med html controls at styre alt dynamisk fra koden..

Ønsker man at ændre en attribut der ikke direkte har en proberty bruger man Attribues.Add i serverscript..

Altså hvis du har en javascript client side du gerne vil "launche" ved klik på din knappe må det blive noget følgende.. Asp.Net generere selv resten.. og begge events brude blive triggered..

DinKnappe.Attributes.Add("onclick", "saveInVariable();");

Eller fatter jeg hat af hvad du vil ? Vil du ikke godt nok trigger begge ved et click ?

Hej,

Jeg har prøvet Jeres løsninger (på nær AJAX), uden held.

Nørden > Det kan godt være at det bare er mig der er en spasser til JS, men det som jeg har prøvet, kan jeg ikke ved brug af javascript ændre på en value i en .net kontrol.

Jokke Jensen > Jeg har min edit.aspx side og min edit.cs side. Min event handler er placeret i edit.cs, hvilket ikke gør det muligt (for mig) at kalde en Javascript funktion fra edit.aspx..

I skulle ikke ligge inde med nogle extra løsninger vel :|?

Tak for jeres tid.

Kenneth

Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk



Hej Jokke,

Det er lige præcist det jeg søgte efter. Kanont!! :)

Jeg tror bare jeg har fundet en måde, hvorpå jeg kan lave min WYSIWYG editor i plain c#.. Og det ville jo være noget af en bonus, men det skader aldrig at kunne begge ting.

Igen Mange tak Jokke.

Kenneth



Nu er jeg meget grøn i C#, så er det ikke muligt at få et par pointers til din codebehind på din editor...



Nu er jeg meget grøn i C#, så er det ikke muligt at få et par pointers til din codebehind på din editor...



Pointers? Hvad mener du med det?

Du kan få lige hvad du vil have, forstår bare ikke lige hvad du mener med pointers.

Kenneth



Jeg er nu stødt på et lidt andet problem. Det kan godt være jeg søger helt forkert på Google, men har desværre ikke kunne finde noget.

Jeg har et hidden input felt, som indholder mit indhold fra iframe boksen. Hvis det kun er ren tekst jeg indtaster i min iframe boks, har jeg ingen problemer, men hvis jeg bruger mit javascript til at lave teksten fed, for jeg runtime error.

Jeg ved godt at det mest optimale, ville være at skrive fejlmeddelsen, men jeg har ikke kunne få errorMode på webserveren til at virke.

edit.aspx
Fold kodeboks ind/udKode 


edit.cs
Fold kodeboks ind/udKode 


Håber der er en af Jer der lige ved hvordan dette problem skal "twistes"..

Med venlig hilsen
Kenneth



t