Har hittat flera exempel på nätet där man använder en literal. Dvs att man i codebehind helt enkelt sätter värdet Lat.Text = "Texten jag vill ha".
Detta får jag dock inte att fungera.
<script type="javascript">
function confirmSubmit()
{
var popuptext = <asp:Literal ID="Lat" runat="server" />;
if (document.applets["canvas"].IsChanged() == true)
{
var agree=confirm(popuptext);
if (agree)
return true;
else
return false ;
}
else
return true;
}
</script>
Tanken är att beroende på användare skall olika meddelande visas på denna confirm popup. Om jag sätter värdet på variabeln popuptext till tex "hej" funkar det utmärkt men med literal funkar det inte. Jag får inget felmeddelande och ingen popup dyker upp när jag använder en literal.
... ja det spelar roll....
javascripten har ingen variabel som heter "Den", "text", "jag", "skriver"... så det är ju nollat... "Detta är en sträng" är en sträng... du skriver ju
string MyString = "Detta är ett sträng";
i C# och inte
string MyString = Detta är ett sträng
<script type="javascript">
function confirmSubmit()
{
var popuptext = "<asp:Literal ID="Lat" runat="server" />";
if (document.applets["canvas"].IsChanged() == true)
{
var agree=confirm(popuptext);
if (agree)
return true;
else
return false ;
}
else
return true;
}
</script>
är det korrekta resultatet du är ute efter :)
Din code-behind kod ger ju resultatet:
Den text jag skrivit
och inte:
"Den text jag skrivit"
javascript är inte HTML.. det är ju ändå ett skriptspråk.
Var så nära lösningen redan, hade trollat bort mig själv. Man bryter ihop när det igentligen är enkelt men man stökar till det för sig. Popupen hade slutat fungera det var därför jag inte fick något svar. Hade gjort en liten ändring som ställde till det.
Tänk på att det är vettigt att Javascript-koda den text som man lägger in. Annars kan man sabba skriptet med fel sträng.
Själv brukar jag använda AJAX-bibliotekets System.Web.Script.Serialization.JavaScriptSerializer.Serialize, men om man inte har tillgång till den så ser den ut ungefär så här: