webForumDet fria alternativet

egen funktion

.NETur .NET

9 svar · 350 visningar · startad av tobie

tobieMedlem sedan juli 200515 inlägg
#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å?

PaceMedlem 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
DinoMedlem 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>
tobieMedlem 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
GuffaMedlem sedan juni 2004533 inlägg
#5

strWriteRubrik finns inte.

tobieMedlem 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

desdecadoMedlem sedan juli 2004206 inlägg
#7

Du har glömt ett 'r' i makerubrik

tobieMedlem 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

desdecadoMedlem 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.

PMedlem sedan jan. 20012 204 inlägg
#10

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

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