Toon posts:

[VB.NET] krijg niet de goede tekst uit textbox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ben nu al een tijdje bezig met iets wat eigenlijk heel simpel moet zijn. Ik wil in VB.NET een textbox vullen met tekst uit een db, deze tekst aanpassen en vervolgens de tekst weer wegschrijven naar de db. Nu gaat het uitlezen goed en ik kan dus de tekst ook aanpassen, maar als ik vervolgens de tekst uit de textbox wil uitlezen heeft deze nog steeds de tekst die er de eerste keer ingezet is. Vreemd. Ik heb de volgende code:

======== edit.aspx =====
<html>
<body>
<form id="edit" method="post" runat="server">
<b>Titel:</b><asp:TextBox id="titeltb" runat="server"></asp:TextBox>
</form>
</body>
</html>
=====================

======= edit.aspx.vb ====
Private Sub laadpagina()
titeltb = New Textbox
titeltb = "titel"
End Sub

Private Sub wijzig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles wijzig.Click
Dim titel = titeltb.Text()

CODE OM tekst in db te schrijven.

End Sub

=====================

Weet iemand wat ik verkeerd doe? Ik zoek me al dagen helemaal rot en kan niks vinden dat werkt.

Waarschijnlijk moet ik de textbox opnieuw uitlezen ofzo, maar ik weet niet hoe.

Kan iemand mij helpen?

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

OZ-Gump

terug van weggeweest

Deze regel klopt niet: titeltb = New Textbox

Het is geen nieuwe textbox, je wil de textbox gebruiken die je hebt staan. Als je van de bestaande textbox de text wilt veranderen, dan doe je
code:
1
textboxnaam.Text = "De waarde die je in de textbox wil zetten"

My personal website


Verwijderd

Topicstarter
Ja je hebt gelijk idd. met die nieuwe textbox => stom (te snel ingetikt)
er moet idd staan:
titeltb.Text ="tekst"

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

OZ-Gump

terug van weggeweest

- Neem even exact de code over die je gebruikt en die relevant is voor dit topic
- Zet code tags om die code om duidelijkheid te scheppen
- Geef aan wat je daarmee wil doen
- Vertel even nog precies wat er fout gaat

Als mensen naar je code kijken, daar opmerkingen over geven en vervolgens blijkt dat die code niet in jouw code staat, dan wordt het natuurlijk onhandig reageren....

edit:
Je hoeft de HTML van je pagina niet te posten: als je zegt dat je een servercontrol textbox hebt die "tbtekst" heet geloven we je wel ;)
Ja je hebt gelijk idd. met die nieuwe textbox => stom (te snel ingetikt)
er moet idd staan:
titeltb.Text ="tekst"
Tenzij je hier nu mee aangeeft dat het opgelost is?

[ Voor 34% gewijzigd door OZ-Gump op 23-02-2005 23:58 ]

My personal website


Verwijderd

Topicstarter
De volledige code is als volgt:

========= edit.aspx ==========
code:
1
2
3
4
5
6
7
8
9
10
11
 <%@ Page Language="vb" AutoEventWireup="false" Src="edit.aspx.vb" Inherits="website.edit"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body>
<form id="editform" method="post" runat="server">
<b>Titel:</b><asp:TextBox id="titeltb" runat="server"></asp:TextBox><br>
<P><asp:Button Runat="server" ID="wijzig" Text="Wijzig"></asp:Button>
<asp:Button Runat="server" ID="terug" Text="Terug"></asp:Button></P>
</form>
</body>
</html>

==============================

========= edit.aspx.vb =======
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Imports System
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Namespace website
    Public Class edit
        Inherits System.Web.UI.Page
        Protected WithEvents titeltb As TextBox
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            titeltb.Text = "tekst"
        End Sub
        Private Sub wijzig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles wijzig.Click
        Dim titel = titeltb.Text
        End Sub
    End Class
End Namespace

=============================

Het probleem zit um erin dat ik wel de tekst uit de textbox lees, maar dat is de tekst die ik er eerder ingestopt heb (in dit geval "tekst") en niet de tekst die ik in de browser ingevoerd heb.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13-05 21:26

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic .NET:
1
2
3
If Not Page.IsPostback Then
    titeltb.Text = "tekst"
End if

[ Voor 15% gewijzigd door gorgi_19 op 24-02-2005 00:22 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


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

OZ-Gump

terug van weggeweest

Dat komt omdat je page_load altijd uitgevoerd wordt. Die wordt nu ook als eerste uitgevoerd, voordat de wijzig_Click wordt uitgevoerd. En dan heb je net de tekst van titeltb weer aangepast! Pas je Page_Load eens als volgt aan:
 
Visual Basic .NET:
1
2
3
4
5
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  if not Page.IsPostBack then
    titeltb.Text = "tekst"
  end if
End Sub

Je vult dan de textbox alleen met 'tekst' de eerste keer dat de pagina geladen wordt. Daarna (bij een PostBack om de button event af te vangen) zal de tekst niet gereset worden, maar gelezen worden wat jij in de tekstbox hebt getypt.

edit:
Ik moet er niet meer zulke uitgebreide verhalen van maken, anders is Gorgi_19 me telkens voor ;)

[ Voor 10% gewijzigd door OZ-Gump op 24-02-2005 00:25 ]

My personal website


Verwijderd

Topicstarter
MIJN DANK IS GROOT!!

Ik wist niet dat de Page_Load functie elke keer werd aangeroepen. De postback functie is de oplossing.

Bedankt!
Pagina: 1