webForumDet fria alternativet

Hur anropa funktion som ligger i ASCX-fil?

.NET

6 svar · 398 visningar · startad av Palle

Medlem sedan apr. 20003 174 inlägg
Frågan#1

Hej,

Jag ska utveckla lite nya delar i ett webbaserat system skrivet i ASP.NET/VB, och här är tyvärr mina kunskaper aningen begränsade. ;)

Hur som helst; I en ASCX-fil, som infogas högst upp på alla sidor, ska jag nu skapa lite nya funktioner.
Jag har dock inte den blekaste hur jag sedan anropar dessa funktioner från själva sidan sedan.

ASCX-filen infogas enligt

[red]<%@ Register TagPrefix="hrmfunc" TagName="Functions" Src="ifunction.ascx" %>[/red]

Exempel:

    På ASPX-sidan vill jag anropa funktionen foo som ligger i ASCX-filen.

[red]Dim strFooString As String
strFooString = ?? foo([i]bar[/i])[/red]

Hur gör jag det?

Tack med förhanden!

Medlem sedan juli 2004206 inlägg
#2
<%@ Register TagPrefix="hrmfunc" [B]Inherits="dittprojektnamn.hrmfunc"[/B] TagName="Functions" Src="ifunction.ascx" %>

Sedan är det väl bara i din aspx-fil att komma åt din funktion genom att skriva hrmfunc.dinfunktion()

Medlem sedan apr. 20003 174 inlägg
#3

desdecado skrev:

<%@ Register TagPrefix="hrmfunc" Inherits="dittprojektnamn.hrmfunc" TagName="Functions" Src="ifunction.ascx" %>

Det där hänger jag inte med riktigt på.. vad är dittprojektnamn?

Det vore smutt om det fanns något smidigare sätt då jag annars
måste ändra register-taggen i en sjuhelsikes massa filer.. :OO

Medlem sedan sep. 20026 425 inlägg
#4

Skapade du ett projekt (i VS.NET kanske?) när du började med ditt webbaserade system, och vad heter i så fall det projektet? :)

Du kanske har samma problem som jag - jag skapar inte nya projekt utan jag skapar nya filer som jag lägger i samma mapp. Dessa blir sedan en helhet, t.ex. ett script eller en sajt. I så fall har jag inget projektnamn. :l

Medlem sedan apr. 20003 174 inlägg
#5

Nja, nu har jag inte börjat nått webbasterat system utan vidareutvecklar i ett redan befintligt. ;)

Gällande projektnamn så finns det iofs ett sådant: rj_DEV
då vi utvecklar i dev-miljö innan det publiceras publikt på live-servern.

Finns det inget generellt tillvägagångssätt? - oberoende av vad projektet heter?

Annars blir det ju jobbigt om man ska återanvända kod i andra projekt.. :OO

Medlem sedan juli 2004206 inlägg
#6

Nja, det behöver ju inte vara projektnamnet men det brukar vara det om man inte gör några inställningar i VS. Det jag menar är din sk "Root namespace" för din site. Hur du ställer in den utan att använda VS vet jag inte, men har du Visual studio så är det bara att högerklicka på ditt projekt, välja properties och sedan så bör du se det framför dig. =)

Medlem sedan apr. 200487 inlägg
#7

Testat att slänga in en
protected System.Web.UI.UserControl idt_på_din_uc;

och sen

((din_ucs_klassnamn)idt_på_din_uc).DooFoo(...);

Borde funka

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)