webForumDet fria alternativet

egen funktion

.NETur .NET

9 svar · 350 visningar · startad av tobie

Medlem sedan juli 200515 inlägg
Frågan#1

Hej hej. nu är jag här igen, med ännu fler frågor.
Nu när mitt pagesystem fungerar, så tänkte jag göra som jag gjorde i PHP. Nämligen att jag med hjälp utav en egen funktion "översätter" det som finns i "?pageId=".

Min kod:

<script language="VB" runat="server"> 
		Sub Page_Load() 
		Public Function MakeRubrik(ByVal strText as string) as string
			strText.Replace("main","startsidan")
			strText.Replace("info","information")
			strText.Replace("spel","onlinespel")
			strText.Replace("lenk","länkarkiv")
			strText.Replace("gestbok","gästbok")
			return strText
		End Function
		MakeRubik.text = MakeRubik(Request.Querystring("pageId")) 
		End Sub 
	</script>

och för att kalla på översättningen:

<asp:Label id="MakeRubik" runat="server" />

men!
error:

 Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30289: Statement cannot appear within a method body. End of method assumed.

Source Error:

Line 2:  	<script language="VB" runat="server"> 
Line 3:  		Sub Page_Load() 
Line 4:  		Public Function MakeRubrik(ByVal strText as string) as string
Line 5:  			strText.Replace("main","startsidan")
Line 6:  			strText.Replace("info","information")

vad kan detta bero på?

Medlem sedan juni 20019 024 inlägg
#2

Du har lagt funktionen MakeRubrik inom Page_Load. Separera de två så ska det gå bättre.

Gör om:

Sub Page_Load()
Public Function MakeRubrik()
End Function
End Sub

Till:

Sub Page_Load()
End Sub

Public Function MakeRubrik()
End Function
Medlem sedan sep. 20011 914 inlägg
#3

Använd IsPostBack så att MakeRubik metoden endast körs en gång.

<script language="VB" runat="server"> 
   Sub Page_Load() 
      If Not IsPostBack Then
         MakeRubik.text = MakeRubik(Request.Querystring("pageId")) 
      End If
   End Sub 
</script>
Medlem sedan juli 200515 inlägg
#4

snabba fina svar! :)

men.:(

 Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30451: Name 'strWriteRubrik' is not declared.

Source Error:

Line 11:   		Sub Page_Load() 
Line 12:       		If Not IsPostBack Then
Line 13:          		strWriteRubrik.text = MakeRubik(Request.Querystring("pageId")) 
Line 14:       		End If
Line 15:    		End Sub
Medlem sedan juni 2004533 inlägg
#5

strWriteRubrik finns inte.

Medlem sedan juli 200515 inlägg
#6

jag la till dim strWriteRubrik ovanför strWriteRubik.text = ...

men får då istället:

Name 'MakeRubik' is not declared.

men jag gör ju den till en funktion precis ovanför?
Public Function MakeRubrik(ByVal strText as string) as string
strText.Replace("main","startsidan")
strText.Replace("info","information")
strText.Replace("spel","onlinespel")
strText.Replace("lenk","länkarkiv")
strText.Replace("gestbok","gästbok")
return strText
End Function

Medlem sedan juli 2004206 inlägg
#7

Du har glömt ett 'r' i makerubrik

Medlem sedan juli 200515 inlägg
#8
		Function MakeRubrik(ByVal strText as string) as string
			strText = Replace(strText, "main", "startsidan")
			strText = Replace(strText, "info","information")
			strText = Replace(strText, "spel","onlinespel")
			strText = Replace(strText, "lenk","länkarkiv")
			strText = Replace(strText, "gestbok","gästbok")
			return strText
		End Function

blev korrekt lösning

Medlem sedan juli 2004206 inlägg
#9

Du kan även skriva:

return strText.replace("main", "startsidan").replace("info","information").replace("spel","onlinespel")

..etc, om du vill förkorta koden lite.

Medlem sedan jan. 20012 204 inlägg
#10

Eller använda dig av StringBuilder klassen om du vill spara lite prestandard.

141 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)