Hej, Alla \ måste du ersätta med \\, alla ' med \' och alla enter med \r\n Hej, Du gör två fel; Tackar igen. Underbart!Problem att skicka värden mellan fönster
Jag har en sida där man klickar på en länk och för upp ett popup-fönster.
När jag ifrån detta popup-fönster klickar på en knapp, vill jag hämta ett värde från en textbox(multiline) och sätta detta värde i en textbox på "parent-sidan".
Så här har jag gjort och det funkar förutom när användaren matat in något av följande:
Radbrytning
' (enkelfnutt)
"\"
\ och ' kan jag leva med att dom inte funkar, men radbrytning måste fungera.
Så här ser länken som öppnar popup-fönstret ut:
Öppna
Jag skickar alltså med namnet på textboxen dit värdet ska hamna.
I popup-fönstret ser click-eventet på min knapp ut så här:
protected void Button1_Click(object sender, EventArgs e)
{
String txt = Request.QueryString["txtValue"];
String jscript = "<script language='Javascript'>";
jscript += "window.opener.document.getElementById('" + txt + "').value = '" + TextBox1.Text + "';";
jscript += "window.close;";
jscript += "</script>";
Literal1.Text = jscript;
}
TextBox1 är alttså textboxen i popupfönstret där jag hämtar värdet ifrån.
Någon som kan hjälpa mig att få till detta, så att rabrytningar funkar? Helst de andra tecknen oxå.
Jag kör ASP.NET 2.0 och C#.
Bugar o bockar på förhand!
/Jocke
Sv: Problem att skicka värden mellan fönster
Sv:Problem att skicka värden mellan fönster
Tack för svar, men jag får det inte att funka.
Nu gör jag så här:
String returnValue = FormatTextString(TextBox1.Text.Trim());
protected String FormatTextString(String sValue)
{
sValue = sValue.Replace("'","\'");
sValue = sValue.Replace(Environment.NewLine, "\r\n");
sValue = sValue.Replace("\", "\\");
return sValue;
}
Den sista raden, sValue = sValue.Replace("\", "\\");, kan jag inte skriva i Visual Studio, då kan jag inte bygga. Får "Excpected ;"-fel.
Sen provar jag att bara använda dom två översta där jag gör replace på "enkelfnutt" och radbrytning.
Då får jag får javascripts-fel, "Unterminated string constant".
Eller gör jag helt galet??
/Jocke
Sv: Problem att skicka värden mellan fönster
1) Du gör inte sakerna i den ordningen jag skrev ;) Sätt den sista replace-grunkan först
2) \ är escpape-chars i både c# och i javascript. Det jag skrev att du skulle göra var för att "skydda" dem i javascript. Sedan måste du ju "skydda" dem i din c#-kod också. Så alla förekomster av \ i dina c#-strängar måste skrivas om till \\.Sv:Problem att skicka värden mellan fönster
jag känner mig lite dum här, men jag fattar inte riktigt vad du menar med "<b>Sedan måste du ju "skydda" dem i din c#-kod också. Så alla förekomster av \ i dina c#-strängar måste skrivas om till \\.</b>"
Även om jag flyttar upp sista raden överst, så går det inte att skriva så tycker Visual Studio.
Den säger "; expected".
Min kod ser alltså ut så här:
protected String FormatTextString(String sValue)
{
sValue = sValue.Replace("\", "\\");
sValue = sValue.Replace("'","\'");
sValue = sValue.Replace(Environment.NewLine, "\r\n");
return sValue;
}
Eller måste jag göra något mer??
Tack för hjälpen på förhand!!
/Jocke
Sv: Problem att skicka värden mellan fönster
protected String FormatTextString(String sValue)
{
sValue = sValue.Replace("\\", "\\\\");
sValue = sValue.Replace("'","\\'");
sValue = sValue.Replace(Environment.NewLine, "\\r\\n");
return sValue;
}
Sv:Problem att skicka värden mellan fönster
Tackar!!
Äntligen fick jag(eller rättare sagt Per o Oskar) det att funka.
/Jocke