Hallo allemaal
Ik ben de laatste tijd een beetje aan 't programmeren in ASP.net (met als language VB.NET). Dat lukt heel aardig, maar alle voorbeelden die ik nu heb gezien, werken niet met codebehinds.
Ik heb het boek basiscursus asp.net doorgewerkt, de site http://www.microsoft.com/netherlands/msdn/aspnet/menu.aspx (nederlandstalige training van microsoft) en heb veel rondgeneusd op het internet, en kan ondertussen aardig uit de voeten met de taal.
Wat ik mis, is een heldere uitleg over hoe code behindfiles eruit moeten zien. Tot nu toe dus altijd zonder gewerkt, en ik heb grote moeite om het om te zetten naar een format met .aspx pagina's met een aspx.vb file als codebehind. (niet dat omzetting noodzakelijk is, maar ik wil daar ook eens mee werken).
Vaak zie je óf alleen uitleg in een niet-codebehind voorbeeld, óf een situatie waarin codebehind wordt gebruikt, en het niet wordt uitgelegd waarom dat zo moet (en als ik het dan overneem, krijg ik allerlei compilatie-errors)
Kan iemand mij zeggen waar ik goede documentatie vind over hoe dat werkt met codebehind files?
Een heel simpele codebehind lukte me al wel (dus 't gaat niet om hoe je in de .aspx file de codebehindfile aanroept); het gaat meer om wat erin zo'n codebehindfile kan staan, en hoe je daar wat ingewikkeldere dingen doet dan alleen een button-click afhandelen (bijvoorbeeld hoe je database queries daar kan afhandelen en andere sub-routines, die bijv. door het indrukken van een knopje worden aangeroepen).
Ik heb het volgende werkend gekregen:
D.m.v. het aanklikken van de knop, wordt ervoor gezorgd dat een label wordt gevuld.
Zodra ik iets uit de database wil halen (zie ook het voorbeeld) mislukt het.
Ik geen foutmeldingen, en momenteel ook geen idee waarom het mislukt...
Code:
default.aspx
webform1.aspx.vb:
Probleemanalyse
Ik heb een trace.Warn() ingevoegd in de whille loop, waar de databasegegevens gelezen moeten worden. In mijn trace, vind ik netjes de waarden uit de 4 records terug. Dus, de gegevens worden wel uit de database gehaald, maar niet aan de label gekoppeld...
Ik mis kennis van de syntax van codebehind files; hoe werktdat?
Hoe is zo'n file opgebouwd...
Iemand die me een stapje verder kan helpen, of een duidelijke link kan geven naar een pagina die dit beschrijft?
Ik ben de laatste tijd een beetje aan 't programmeren in ASP.net (met als language VB.NET). Dat lukt heel aardig, maar alle voorbeelden die ik nu heb gezien, werken niet met codebehinds.
Ik heb het boek basiscursus asp.net doorgewerkt, de site http://www.microsoft.com/netherlands/msdn/aspnet/menu.aspx (nederlandstalige training van microsoft) en heb veel rondgeneusd op het internet, en kan ondertussen aardig uit de voeten met de taal.
Wat ik mis, is een heldere uitleg over hoe code behindfiles eruit moeten zien. Tot nu toe dus altijd zonder gewerkt, en ik heb grote moeite om het om te zetten naar een format met .aspx pagina's met een aspx.vb file als codebehind. (niet dat omzetting noodzakelijk is, maar ik wil daar ook eens mee werken).
Vaak zie je óf alleen uitleg in een niet-codebehind voorbeeld, óf een situatie waarin codebehind wordt gebruikt, en het niet wordt uitgelegd waarom dat zo moet (en als ik het dan overneem, krijg ik allerlei compilatie-errors)
Kan iemand mij zeggen waar ik goede documentatie vind over hoe dat werkt met codebehind files?
Een heel simpele codebehind lukte me al wel (dus 't gaat niet om hoe je in de .aspx file de codebehindfile aanroept); het gaat meer om wat erin zo'n codebehindfile kan staan, en hoe je daar wat ingewikkeldere dingen doet dan alleen een button-click afhandelen (bijvoorbeeld hoe je database queries daar kan afhandelen en andere sub-routines, die bijv. door het indrukken van een knopje worden aangeroepen).
Ik heb het volgende werkend gekregen:
D.m.v. het aanklikken van de knop, wordt ervoor gezorgd dat een label wordt gevuld.
Zodra ik iets uit de database wil halen (zie ook het voorbeeld) mislukt het.
Ik geen foutmeldingen, en momenteel ook geen idee waarom het mislukt...
Code:
default.aspx
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <%@ Page Src="WebForm1.aspx.vb" trace="true" Inherits="WebForm1" Language="VB" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>WebForm1 Code-Behind Test</title> </head> <body> <a href="default.aspx">refresh</a> <form id="Form1" method="post" runat="server"> <asp:Button id="Button1" runat="server" Text="Hoe laat is het nu?"></asp:Button> <asp:Label id="Label1" runat="server">Label</asp:Label> <br> <asp:Button id="knop2" runat="server" Text="Button"></asp:Button> <asp:Label id="Label2" runat="server">Label</asp:Label> </form> </body> </html> |
webform1.aspx.vb:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| Imports System Imports System.Web.UI.WebControls Imports System.Web.UI Imports System.Data Imports System.Data.OleDb Public Class WebForm1 Inherits System.Web.UI.Page Public ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data source=d:\www\business-develop.org\database\test.mdb;" Public myConnection As New OleDbConnection(ConnectionString) Public CommandText = "SELECT * FROM users" Public myCommand As New OleDbCommand(CommandText, myConnection) Public DataReader as OleDbDataReader Protected WithEvents Button1 As System.Web.UI.WebControls.Button Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents Label2 As System.Web.UI.WebControls.Label Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Label1.Text=System.DateTime.Now End Sub Sub Page_load() myConnection.Open() DataReader = myCommand.ExecuteReader() while DataReader.Read() trace.Warn(DataReader("Uname")) Label2.Text = DataReader("Uname") end while DataReader.Close() myConnection.Close() End Sub End Class |
Probleemanalyse
Ik heb een trace.Warn() ingevoegd in de whille loop, waar de databasegegevens gelezen moeten worden. In mijn trace, vind ik netjes de waarden uit de 4 records terug. Dus, de gegevens worden wel uit de database gehaald, maar niet aan de label gekoppeld...
Ik mis kennis van de syntax van codebehind files; hoe werktdat?
Hoe is zo'n file opgebouwd...
Iemand die me een stapje verder kan helpen, of een duidelijke link kan geven naar een pagina die dit beschrijft?