Hej, Typ såhär då Ola: Byt ut <%= mot <%# och använd Page.DataBind() istället. <%= förstör möjligheten för asp.net att bygga upp en objektmodell ;) Den här artikeln beskriver en bra metod som jag brukar använda och som fungerar utmärkt: Hej! Hej! Visst, detta funkar ju men problemet blir det samma. Först visas javascript-prompten, först när jag klickar ok laddas/visas själva sidan. Jag vill ju köra alert direkt när sidan laddas och detta får jag inte till. I codebehind-sidan kör jag under Page_Load ett anrop till suben som promptar. Prova så här då, det funkar här.. Då är jag ju tillbaka i utgångsläget, dvs att jag får använda "gamla" ASP-taggar i HTML-koden, alltså <%= DynamicScript %>. Denna lösning får jag till utan problem. Vad jag vill göra är koda allt detta i codebehind-sidan. De exempel jag fått funkar bra om man vill skapa en alert vid ngt event men inte i samband med att sidan laddats färdigt. Då blir resultatet att först visas alerten, när man klickar ok visas själva web-sidan. Lägg den här metoden i din klass och anropa den sedan i Page_Load. Alerten kommer att visas efter att sidan laddats. Hej! En ja/nej-knapp kan vara svårt att få till på ett snyggt sätt, men för en OK/Avbryt-knapp finns det stöd i JavaScript. Exempel: Svar till Jonas,Skapa javascript-prompt från codebehind-sida (VB)
jag har en sida som visar en vald post. Hit kommer användaren även efter att en post har uppdaterats. I detta läge vill jag visa en bekräftelse på att posten har uppdaterats. Har löst detta genom att lägga "vanlig" ASP-kod i HTML-koden. Jag vill dock gärna ha all kodning i codebehind-sidan.
Har lagt till följande kod i codebehind-sidan:
<CODE>
If Request("action") = "system_changed" Then
Response.Write("<SCRIPT language=javascript>alert('The application has been updated.');</SCRIPT>")
End If
</CODE>
Funkar hyfsat men jag får upp meddelandet innan sidan har laddat, dvs en prompt och helt vitt bakom, inte förrän jag klickar OK laddas själva sidan in i web-läsaren. Finns det ngt sätt att lösa detta utan att lägga ASP-kod i HTML-sidan?
/MagnusSv: Skapa javascript-prompt från codebehind-sida (VB)
<head><script>
function MyAlert() {}
</script></head>
<body onload="<%=onloadJS%>" ....... >
'i din codebehind
Public onloadJS As String
'i din kod
If apa = 1 Then
onloadJS = "MyAlert();"
Else
onloadJS = ""
End If
Sv: Skapa javascript-prompt från codebehind-sida (VB)
edit:
såg att ett # försvann... :/Sv: Skapa javascript-prompt från codebehind-sida (VB)
http://www.developer.com/net/asp/article.php/1594521Sv: Skapa javascript-prompt från codebehind-sida (VB)
Åh, detta har jag tänkt efter lösningar på och så springer man på en här!
Jag missar dock vad du menar med att byta ut det ena här och det andra där plus att en "#" försvann).
Skulle du kunna skriva koden för den modellen som Ola gjorde, men som du ville ha den?
Stort tack!
Mvh, Sofia
Inlägg - jag läste artikeln ni hänvisade till och allt är löst!!!
Glöm mitt inläggSv: Skapa javascript-prompt från codebehind-sida (VB)
Är det någon som har en liknande kod för att öppna ett nytt fönster med en specifik storlek inifrån code behind?
Mvh, SofiaSv: Skapa javascript-prompt från codebehind-sida (VB)
/MagnusSv: Skapa javascript-prompt från codebehind-sida (VB)
<code>
'-- deklarera
Public DynamicScript As String = ""
Public AlertText As String = "Okej det gick bra"
Page_Load
DynamicScript = "MyAlert();"
'-- webbsidan..
<script>
function OnLoadScript()
{
<%= DynamicScript %>
}
function MyAlert()
{
var txt = '<%= AlertText %>';
if (txt.length)
alert(txt);
}
</script>
</HEAD>
<body onload="OnLoadScript()">
</code>Sv: Skapa javascript-prompt från codebehind-sida (VB)
/MagnusSv: Skapa javascript-prompt från codebehind-sida (VB)
I Page_Load:
createMessageAlert(me, "Hi", "strKey1")
<code>
Public Shared Sub createMessageAlert(ByRef aspxPage As System.Web.UI.Page, _
ByVal strMessage As String, ByVal strKey As String)
Dim strScript As String = "<script language=JavaScript>alert('" _
& strMessage & "')</script>"
If (Not aspxPage.IsStartupScriptRegistered(strKey)) Then
aspxPage.RegisterStartupScript(strKey, strScript)
End If
End Sub
</code>
Hoppas det hjälper.
/JonasSv: Skapa javascript-prompt och ge tillbaka svar från Code behind??
Ytterligare ett steg - med så mycket kod som möjligt i code behinden, hur hanterar jag enklast användarens input på prompten?
DVs om jag vill ha ha en promt med meddelande samt ja/nej knapp.
Mvh, AnnaSv: Skapa javascript-prompt och ge tillbaka svar från Code behind??
<CODE>
function Logout()
{
if(confirm('Detta loggar ut dig!'))
window.parent.location = 'ut.aspx';
}
</CODE>
Om man vill och det tillför något så kan man ju lägga in JavaScript-koden på html-sidan inifrån Code Behind-filen.
/PelleSv: Skapa javascript-prompt från codebehind-sida (VB)
detta funkade utmärkt, tack för detta. Har du lust att förklara koden för mig. Vad innebär IsStartupScriptRegistered och vad används strKey till?
/MagnusSv: Skapa javascript-prompt från codebehind-sida (VB)
IsStartupScriptRegistered används till att kontrollera om det redan finns ett visst script med en viss nyckel registrerat i sidan. Detta antagligen för att slippa registreringen om nycklen redan finns. Nyckeln används av sidan för att referera till ett visst script. Nyckeln behövs alltså för att sidan ska kunna hålla ordning på vilka script som är registrerade.
Hittade koden på www.codeproject.com, tyvärr hittar jag inte tillbaka till artikeln igen :-(
Du kan nog läsa mer på msdn.microsoft.com. Sök på IsStartupScriptRegistered.
/Jonas