Formulare einsetzen in aspx Seiten

22/03/2009 - 13:21 von Ralf01 | Report spam
Hallo,

ich mache meine ersten Schritte mit Formularen und arbeite gerade ein
Bsp. von "Einstieg in ASP.NET" durch.
Hier ist in einem Formular ein name einzugeben der dann durch Klick
auf den ok Buttom ausgegeben werden soll.
In diesen Bsp ist der VB Code immer in der aspx Seite integriert. Ich
versuche den Code auszulagern in eine vb Datei.
Das ganze làuft ohne Fehler durch, aber es wird der eingegebene Name
nicht ausgegeben.
Leider kann ich den Fehler nicht finden und würde mich freuen hier
eine Info zu erhalten.

######Orginal Code in einer einzelnen aspx Seite ist und geht auch:
<!-- name01.aspx -->
<%@ Page Language="VB" Debug="True" Strict="True" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
ByVal E As EventArgs)
If IsPostBack Then
meldung.Text = "Hallo, " & txtName.Value
End If
End Sub
</script>
<html><head><title>Begrüßung</title></head>
<body><h1>Begrüßung</h1>
<form runat="server">
Wie heißen Sie?
<br><br>
<input runat="server" id="txtName" type="text">
<br><br>
<input runat="server" type="submit" value=" OK " >
<br><br>
<asp:Label id="meldung" runat="server" />
</form></body></html>


######Hier jetzt meine Aufteilung in aspx und in VB Datei

aspx Datei
<%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="Test_00010_Beispiele_Formulare.aspx.vb"
Inherits="WebApplication_JBO_01.Test_00010_Beispiele_Formulare" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html><head><title>Begrüßung</title></head>
<body><h1>Begrüßung</h1>
<form id="form1" runat="server">
Wie heißen Sie?
<br><br>
<input runat="server" id="txtName" type="text">
<br><br>
<input id="Submit1" runat="server" type="submit" value=" OK " >
<br><br>
<asp:Label id="meldung" runat="server" />
</form></body></html>

VB Datei
=Public Partial Class Test_00010_Beispiele_Formulare
Inherits System.Web.UI.Page


Sub Page_Load(ByVal Sender As Object, _
ByVal E As EventArgs)
If IsPostBack Then
meldung.Text = "Hallo, " & txtName.Value
End If
End Sub


End Class
 

Lesen sie die antworten

#1 Gerold Mittelstädt
22/03/2009 - 14:34 | Warnen spam
Hallo,

Ralf01 schrieb:
^^^^^^ Stell Google bitte so ein, dass hier Dein vollstàndiger Name
angezeigt wird.

ich mache meine ersten Schritte mit Formularen und arbeite gerade ein
Bsp. von "Einstieg in ASP.NET" durch.



Welches denn genau?

Hier ist in einem Formular ein name einzugeben der dann durch Klick
auf den ok Buttom ausgegeben werden soll.
In diesen Bsp ist der VB Code immer in der aspx Seite integriert. Ich
versuche den Code auszulagern in eine vb Datei.
Das ganze làuft ohne Fehler durch, aber es wird der eingegebene Name
nicht ausgegeben.
Leider kann ich den Fehler nicht finden und würde mich freuen hier
eine Info zu erhalten.

######Orginal Code in einer einzelnen aspx Seite ist und geht auch:
<!-- name01.aspx -->
<%@ Page Language="VB" Debug="True" Strict="True" %>
<script runat="server">
Sub Page_Load (ByVal Sender As Object, _
ByVal E As EventArgs)
If IsPostBack Then
meldung.Text = "Hallo, " & txtName.Value
End If
End Sub
</script>
<html><head><title>Begrüßung</title></head>
<body><h1>Begrüßung</h1>
<form runat="server">
Wie heißen Sie?
<br><br>
<input runat="server" id="txtName" type="text">
<br><br>
<input runat="server" type="submit" value=" OK " >
<br><br>
<asp:Label id="meldung" runat="server" />
</form></body></html>



Also jetzt interessiert mich wirklich, wer sowas als Beispiel angibt.

######Hier jetzt meine Aufteilung in aspx und in VB Datei

aspx Datei
> <%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="Test_00010_Beispiele_Formulare.aspx.vb"
Inherits="WebApplication_JBO_01.Test_00010_Beispiele_Formulare" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html><head><title>Begrüßung</title></head>
<body><h1>Begrüßung</h1>
<form id="form1" runat="server">
Wie heißen Sie?
<br><br>
<input runat="server" id="txtName" type="text">
<br><br>
<input id="Submit1" runat="server" type="submit" value=" OK " >
<br><br>
<asp:Label id="meldung" runat="server" />
</form></body></html>

VB Datei
=> Public Partial Class Test_00010_Beispiele_Formulare
Inherits System.Web.UI.Page


Sub Page_Load(ByVal Sender As Object, _
ByVal E As EventArgs)
If IsPostBack Then
meldung.Text = "Hallo, " & txtName.Value
End If
End Sub



Das Problem ist, dass Du hier kreuz und quer mischt.

Die Prozedur Page_Load im CodeBeside wird hier garnicht angestoßen, kein
Handler gesetzt ist ("Handles Page.Load").


Aber die Beispiele sind eher... "suboptimal". Realitàtsferner làsst sich
sowas ja fast nicht mehr umzusetzen. Um ASP.NET zu erlernen absolut
ungeeignet (ohne die anderen Beispiele zu kennen; aber das hier ist..
nun ja). Wirkt vilemehr nach einem umgeschriebenen ClassicASP-Beispiel.


Hier mal ein Beispiel:

Du hast Dein Webanwendungsprojekt. Dort fügst Du eine neue Web Form
hinzu. Im Designer solltest Du jetzt das leere Grundgerüst der Web
Form-Vorlage sehen. Parallel dazu sehen. Parallell dazu wurde eine
gleichnamige .vb-Datei angelegt (Der CodeBeside-Teil (Partial
Class...)). Diese kannst Du öffnen, indem Du F7 drückst oder Dir im
Projektexplorer alle Dateien anzeigen làsst (da ist oben ein Knopf für).

ASP.NET bietet ja eine ganze Reihe an WebControls (<asp:...), die einige
Funktionalitàten kapseln. Für Eingabefelder ist das z.B. die
asp:TextBox, für einen Button asp:Button. Damit wirst Du dir spàter
deutlich leichter Tun, als wenn Du HtmlGenericControls (bspw. <input
type...>) verwendest.


Das Ganze könnte dann also so aussehen:

\\\
<%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="WebForm1.aspx.vb" Inherits="GettingCloser.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xht...">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Begrüßung</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label runat="server" AssociatedControlID="txtText">Wie
heißen Sie?</asp:Label><br />
<asp:TextBox ID="txtText" runat="server" /><br />
<asp:Button ID="btnSubmit" runat="server" Text="Senden" /><br />
<asp:Label ID="lblMsg" runat="server" />
</div>
</form>
</body>
</html>
///

So; jetzt willst Du dass wenn jemand auf den Button klickt eine Meldung
angezeigt wird. Dazu machst Du einfach einen Doppelklick auf den Button.
Das Visual Studio (Web Developer) wechselt automatisch in die
Codeansicht und hat eine Prozedur angelegt, die ausgeführt wird, wenn
jeamnd auf den Button klickt. Dieses ereignisgestützte Modell ist einer
der Vorteile von ASP.NET (was in dem Beispiel, was Du hast garnicht
ersichtlich ist)

Dort kannst Du dem Label jetzt einen Text zuweisen:

\\\
Public Partial Class WebForm1
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load

End Sub

Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As
EventArgs) Handles btnSubmit.Click
lblMsg.Text = "Sie heißen " & txtText.Text.Trim
End Sub
End Class
///


Das wars.

Viele Grüße!

Ähnliche fragen