[asp.net] Register Client Script block wil niet lukken

Pagina: 1
Acties:

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ik maak gebruik van de WebMatrix van M$ om mijn webpagina's te maken
die maakt niet gebruik van het principe codebehind, dus alle code staat
boven aan de pagina binnen <script> tags

Maar nu wil ik een Javascrip alert geven nadat er op een button gedrukt is,
en volgens mij moet dat ook kunnen

ik heb diverse voorbeelden gezien

ik gebruik de volgende regel redelijk simeple code
code:
1
2
RegisterClientScriptBlock("MyScript", "<script>
alert('Here is my message');</script>")


Dat zou eigelijk voldoende moeten zijn, om iets simpels te doen,

maar hieronder is de foutmelding

code:
1
2
3
4
5
6
7
8
9
10
11
  Compiler Error Message: BC30648: String constants must end 
  with a double quote.

Source Error:

 

Line 14:         Dim Extensie as object
Line 15:     
Line 16:         RegisterClientScriptBlock("MyScript", "
<script>alert('Here is my message')</script>")


als ik kijk naar de code dan ziet hij de laatste </script> tag als de afsluitende tag
van de code van de pagina. Dit wordt ook gemarkeerd als rood (dat betekend
gewone code) en niet als blauw (standaard voor strings)

hoe moet ik dit dan doen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

Een voorbeeldje wat ik zelf gebruik, heb je misschien wat aan:
code:
1
2
3
4
5
Dim _button As ImageButton = CType(e.Item.FindControl("imgDelete"), ImageButton)
If Not _button Is Nothing Then
      _button.Attributes.Add("OnClick", & _
      "javascript: return confirm('Are you sure you want to delete this record?');")
End If

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
dominion99 schreef op 08 november 2002 @ 13:38:
code:
1
2
RegisterClientScriptBlock("MyScript", "<script>
alert('Here is my message');</script>")
Dan heb je in je code zeker ook de string op de volgend regel staan? een string moet op dezelfde regel nog eindigen met een ". Als je op meerdere regels wilt werken zou je een @ kunnen gebruiken of de regel afsluiten en dan met + ertussen.

“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.”


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
In Vb.net kun je inderdaad de string regels afsluiten met een ", of je laat de regel doorlopen met een & _ teken.

Maar de code staat op 1 regel

Gorgi_19, zo bedoel ik het niet. Dat heb ik al ergens toegepast. Ik wil het doen nadat op de button is geklikt

Ik heb een upload tool gemaakt, je drukt op upload. De functie gaat controleren of bv de filesize te groot is, zo ja dan wil ik een alert geven op de client. Ik heb hiervan een voorbeeld gezien van C#. Die maakte wel gebruik van CodeBehind

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 22:51

D2k

Doet iets met Cloud (MS/IBM)


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
ach ik schrijf het nooit anders, wist niet dat hier zelfs een policy voor is

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

In ieder geval een workaround:

Je hebt toch maar een bericht wat je wel OF niet wilt weergeven. Zet deze tussen placeholder tags; zet deze vervolgens op invisible. Als de conditie optreedt, dan maak je de placeholder visible.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Kan ook, of een label visible maken

Maar dat wil ik niet, op het moment heb ik maar zoiets gemaakt maar ik snap niet waarom dat ik dat script niet kan registreren.

Ik heb ook geprobeerd om met "" te werken maar het geeft hetzelfde effect

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 29-08 12:08

gorgi_19

Kruimeltjes zijn weer op :9

code:
1
Page.RegisterClientScriptBlock("MyScript", "<script>alert('Here is my message');</script>")

Werkt wel als ik deze in mijn code-behind doe in het Page_Load gedeelte.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

In de msdn wordt het volgende code voorbeeld gegeven:
C#:
1
2
3
4
5
6
7
String scriptString = "<script language=JavaScript> function DoClick() {";
scriptString += "myForm.show.value='Welcome to Microsoft .NET'}<";
scriptString += "/";
scriptString += "script>";

if(!this.IsClientScriptBlockRegistered("clientScript"))
   this.RegisterClientScriptBlock("clientScript", scriptString);

maar of er daar nu bewust voor gekozen is om de </script>-tag over 3 regels uit te smeren :?
Je zou haast denken van wel.

Edit:
gorgi_19 schreef op 08 November 2002 @ 17:25:
Werkt wel als ik deze in mijn code-behind doe in het Page_Load gedeelte.
Yep, bij mij ook, dus het is weer iets typisch van die WebMatrix blijkbaar?

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 28-08 13:52
Zet anders eens een '@' voor je script-string. Misschien valt ie over de '/' of zo. Met een '@' ervoor negeert ie die gewoon.

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ok ik had het al opgelost, alleen ff vergeten te melden

hier is mijn oplossing, is eigelijk zoals die van MSDN

code:
1
2
Page.RegisterClientScriptBlock("MyScript", "<script>alert('Here is my message');<" & _
"/script>")
Pagina: 1