Toon posts:

[ASP.NET] Eigen Component Gebruiken

Pagina: 1
Acties:
  • 168 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik probeer zelf zo'n file te maken die boven aan de pagina Import (volgens mij heet het een component maar weet niet zeker)

Dit is mijn code:

Default.aspx
code:
1
2
3
4
5
6
7
8
9
<%@ Page language="VB" Src="CodeBehind/Default.aspx.vb" Inherits="ComTest.CodeBehind" %>

<html>
<body>

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

</body>
</html>

Functions.vb
code:
1
2
3
4
5
6
7
8
9
10
11
Namespace ComTest

    Class Functions

        Public Function test()
            Return "yea!!!"
        End Function

    End Class

End NameSpace

CodeBehind/Default.aspx.vb
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports ComTest.Function

Namespace ComTest

    Public Class CodeBehind : Inherits Page
        Public lbMessage As Label

        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            lbMessage.Text = Test()
            End Sub
    End Class

End Namespace


Maar het werkt niet :( kan iemand mij vertellen wat ik fout doe?

[ Voor 20% gewijzigd door Verwijderd op 09-02-2005 14:36 ]


  • Pelle
  • Registratie: Januari 2001
  • Nu online

Pelle

🚴‍♂️

Meer werk voor de buren :)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Ten eerste heet je class functions en import je function
Ten tweede valt het al in dezelfde namespace, dus kun je gewoon lbMessage.Text = Functions.Test gebruiken. Je kunt ComTest.Functions niet importen omdat het een class is, niet een namespace.

weet eigenlijk niet of je in VB.Net dat die class dan ook static moet declareren

[ Voor 14% gewijzigd door OZ-Gump op 09-02-2005 13:41 ]

My personal website


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 19:24

Creepy

Tactical Espionage Splatterer

Wat gaat er mis? Krijg je een foutmelding? Zo ja, welke?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Imports gaat over Namespaces. Niet specifiek over assemblies.
Maar wat je nou precies wil, is me niet helemaal duidelijk.. :?

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Maar wat je nou precies wil, is me niet helemaal duidelijk..
TS wil de functie die hij in zijn Functions.vb geplaatst heeft gebruiken in een codebehind file. Static methods van maken en gas ertegen!

My personal website


Verwijderd

Topicstarter
OZ-Gump schreef op woensdag 09 februari 2005 @ 13:40:
Ten eerste heet je class functions en import je function
Ten tweede valt het al in dezelfde namespace, dus kun je gewoon lbMessage.Text = Functions.Test gebruiken. Je kunt ComTest.Functions niet importen omdat het een class is, niet een namespace.

weet eigenlijk niet of je in VB.Net dat die class dan ook static moet declareren
yea.. ik ben nieuw met het .NET gebeuren :P

maargoed ik heb het nu zo
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace ComTest

    Public Class CodeBehind : Inherits Page
        Public lbMessage As Label

        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            lbMessage.Text = Functions.Test()
        End Sub
    End Class

End Namespace
En het werkt nog niet... ik vind het zo ie zo vaag wat nergens verwijs je naar de pagina waar die Functions class in moet zitten

Fout melding:
Beschrijving: Er is een fout opgetreden bij het compileren van een bron die vereist is om aan deze aanvraag te voldoen. Controleer de volgende details van deze fout en pas waar nodig de broncode aan.

Foutbericht van compiler: BC30451: De naam Functions is niet gedeclareerd.

Fout in bron:

Regel 10:
Regel 11: Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Regel 12: lbMessage.Text = Functions.Test()
Regel 13: End Sub
Regel 14: End Class


En ik wil dus dat ik een paar zelf geschreven function op elke pagina te kunnen gebruiken zonder de functie zelf op elke pagina te schrijven zoals je met de oude asp via een include kan doen :)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Toch doe ik het op diezelfde manier binnen een ASP.Net applicatie die in C# is gemaakt hier, en dat werkt als een zonnetje. Heb hier alleen geen VB.Net, dus kan dat niet testen. Probeer de methode eens Shared te maken. Dus:
Visual Basic .NET:
1
2
3
Public Shared Function test()
    Return "yea!!!"
End Function
edit:
Hij vindt overigens Functions niet eens. Heb je die class file wel in je project zitten en build je die ook mee enzo?

[ Voor 25% gewijzigd door OZ-Gump op 09-02-2005 14:45 ]

My personal website


Verwijderd

Topicstarter
Project? ik gebruik geen VS ofzo.. gewoon kladblok :)

Dat Shared erbij werkt niet, nog zelfde fout melding :(

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Kladblok, voor ASP.Net? En hoe compile jij je code?
Kijk maar eens naar bijvoorbeeld WebMatrix

My personal website


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

En ComTest ervoor (dus ComTest.Functions.Test) is het niet?
Ik zeg het uit m'n hoofd, maar is het niet zo dat je, ondanks dat je in dezelfde namespace zit, je 'm toch volledig aan moet roepen (het kan geen kwaad in ieder geval)

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Topicstarter
Ik compile me code niet... en als ik die webmatrix gebruik maakt dat ding gelijk een virtual directory enzo dat wil ik allemaal niet gewoon simpel kladblok

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Verwijderd schreef op woensdag 09 februari 2005 @ 15:16:
Ik compile me code niet... en als ik die webmatrix gebruik maakt dat ding gelijk een virtual directory enzo dat wil ik allemaal niet gewoon simpel kladblok
Als je niet compileert gaat het .vb-files natuurlijk niet werken. Die moeten gecompileerd worden.
De enige optie is om geen code-behind te gebruiken, maar alle code in de .aspx-file te dumpen.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Topicstarter
De codebehind werkt gewoon alleen ik kan geen functions gebruiken uit externe files :(

Verwijderd

Verwijderd schreef op woensdag 09 februari 2005 @ 15:43:
De codebehind werkt gewoon alleen ik kan geen functions gebruiken uit externe files :(
Nee, omdat het geheel ook niet gecompileerd is. Tis geen ASP meer. Die code in de .vb bestanden moet gecompileerd worden. Dit wordt een dll dan. Dit kan dan gebruikt worden in je aspx. Tevens heb je ook een virtual directory nodig in IIS (of van een directory een application) maken.

Compileren kan vanaf de commandline, maar om het simpeler te maken kan je denk ik beter met Webmatrix o.i.d. beginnen.

Verwijderd

Topicstarter
Aha daar was ik al bang voor :(.. ik las net ergens dat je een virtual directory moet hebben anders vind hij die DLL files niet, dat is best wel minder van .NET dan volgens mij kan ik met mijn webhost geen een virtual directorys maken :(

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Verwijderd schreef op woensdag 09 februari 2005 @ 16:17:
Aha daar was ik al bang voor :(.. ik las net ergens dat je een virtual directory moet hebben anders vind hij die DLL files niet, dat is best wel minder van .NET dan volgens mij kan ik met mijn webhost geen een virtual directorys maken :(
Ja, wat wil je? Het gebeurt niet vanzelf. ;)
Je kan niet zomaar een server-side-taal gebruiken als dat niet ondersteunt wordt. :)
Er moet natuurlijk wel iets zijn wat die .aspx om gaat zetten in een html-leesbaar iets; en wat de (gecompileerde) code uitvoert. :)

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Topicstarter
Ja natuurlijk dat snap ik :) mijn webhost ondersteund wel asp.net maar volgens kunnen er geen virtual directorys gemaakt worden...

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Verwijderd schreef op woensdag 09 februari 2005 @ 16:52:
Ja natuurlijk dat snap ik :) mijn webhost ondersteund wel asp.net maar volgens kunnen er geen virtual directorys gemaakt worden...
Mappen moeten aangemerkt worden als application folder. De dll's dump je dan in de bin directory in die map.
Bij mij is mijn rootmap van mijn domein standaard application-folder, maar op verzoek kan ik elke directory tot application folder aanmerken.
Het gaat dus om een application folder.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Topicstarter
Ja!!!! het werkt!!! :D

Heb het eindelijk voor elkaar, had opnieuw geschreven in visual studio en het werkte gelijk :)

Een ding snap ik alleen nog niet, In me code behind heb ik nu geen namespace en toch staat in me html (aspx file) CodeBehind="Com.WebForm1" en die Com heb ik dus nergens gedefinieerd

[ Voor 6% gewijzigd door Verwijderd op 10-02-2005 09:11 ]


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Dit is de root namespace. Meestal gelijk aan de naam van het project (zie ook de property pages van je project)

30Drie Web Design & IT Consultancy | Raven Consultancy Services

Pagina: 1