Toon posts:

[VB.NET/ASP.NET] gegevens uit textbox die in datagrid zit

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

Verwijderd

Topicstarter
Heb jullie al een paar keer benaderd de laatste tijd! En nu heb ik weer wat om aan jullie voor te leggen. Ik wil een waarde ophalen uit een textbox die in een datagrid zit. Er zijn dus meerdere regels in de datagrid en dus ook meerdere textboxes.

Ik heb alle voorbeelden op het internet al er bij gehaald .. sommige zelfs letterlijk overgetypt maar ik kom er maar niet uit. Ten eerste ben ik een dag bezig geweest met Itemplate maar zonder succes. Toen ben ik de volgende dag bezig geweest met andere methodes wat ook niets hielp!. Ik ben echt ten einde raad!

Maar es wat code geven. Als eeste de datagrid:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<asp:DataGrid ID="dgCart" Runat="server" AutoGenerateColumns="False" EnableViewState="False" HeaderStyle-Font-Bold="True"
    HeaderStyle-BackColor="#cc3399" HeaderStyle-ForeColor="#FFFFFF" HeaderStyle-Height="20" GridLines="Horizontal"
    AlternatingItemStyle-BackColor="#eeeeee" ItemStyle-Height="20" CellPadding="0" BorderWidth="0"
    Width="95%">
    <Columns>
        <asp:BoundColumn DataField="Titel" HeaderText="Titel" />
        <asp:TemplateColumn HeaderText="Aantal">
            <ItemTemplate>
                <asp:TextBox id="Textbox2" Text='<%# DataBinder.Eval(Container.DataItem, "Aantal") %>' width="25" Runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateColumn>
        <asp:BoundColumn DataField="Prijs" HeaderText="Prijs" />
        <asp:BoundColumn DataField="Totaal" HeaderText="Totaal" />
        <asp:HyperLinkColumn HeaderText=" " DataNavigateUrlField="ID" DataNavigateUrlFormatString="cart.aspx?remove={0}" DataTextField="Img" Target="_self" />
    </Columns>
</asp:DataGrid>
Als tweede de sub die de datagrid vult:
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
43
44
45
46
47
Private Sub getCart()
    Dim objSecure As New secure
        Dim totaalPrijs As Double
        Dim arlCart As ArrayList = Session("cart")
        Dim Cart As New DataTable
        Dim dr As DataRow
        Dim propCart As propCart
        Dim propArt As propArtikel
        Dim PrijsTotaal As Double

        Cart.Columns.Add(New DataColumn("Titel", GetType(String)))
        Cart.Columns.Add(New DataColumn("Aantal", GetType(String)))
        Cart.Columns.Add(New DataColumn("Prijs", GetType(String)))
        Cart.Columns.Add(New DataColumn("Totaal", GetType(String)))
        Cart.Columns.Add(New DataColumn("ID", GetType(String)))
        Cart.Columns.Add(New DataColumn("Img", GetType(String)))

        For i As Integer = 0 To (arlCart.Count - 1)
            propCart = arlCart(i)
            propArt = objSecure.getArtikelByID(propCart.ArtID)

            dr = Cart.NewRow()

            dr(0) = propArt.Titel
            dr(1) = propCart.Aantal.ToString
            dr(2) = Session("Symbool") & " " & Math.Round(propArt.Prijs * CType(Session("Koers"), Double), 2)
            dr(3) = Session("Symbool") & " " & Math.Round(CType(propArt.Prijs * CType(Session("Koers"), Double) * propCart.Aantal, Double), 2)
            dr(4) = propCart.ArtID.ToString
            dr(5) = "[img]""../images/iconDelete.gif""[/img]"
            PrijsTotaal = PrijsTotaal + ((propArt.Prijs * CType(Session("Koers"), Double)) * propCart.Aantal)

            Cart.Rows.Add(dr)

            dr = Nothing
            propCart = Nothing
            propArt = Nothing
        Next

        CartView = New DataView(Cart)
        dgCart.DataSource = CartView
        dgCart.DataBind()

        arlCart = Nothing
        objSecure = Nothing
    
        lblTotaal.Text = "&nbsp;" & Session("Symbool") & " " & Math.Round(PrijsTotaal, 2)
End Sub
En last but not least de sub die ervoor zou moeten zorgen dat ik gegevens uit de kolommen van de datagrid kan halen.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub btnHereken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHereken.Click
        Dim item As DataGridItem
        For Each item In dgCart.Items
            lblTotaal.Text &= "<br>" & item.Cells(0).Text & _
                        " " & item.Cells(1).Text & _
                        " " & item.Cells(2).Text
        Next item

        'Dim tb As TextBox = dgi.Cells(1).Controls(1)
        'Str = Str() & tb.Text & vbCrLf

End Sub


Het vreemde is dat hij helemaal geen items tegenkomt! Dus hij gaat de For Each loop niet eens in, terwijl en toch degelijk wel rijen en de datagrid staan! Wie kan me helpen .. Alvast heeeeel erg bedankt!

  • whoami
  • Registratie: December 2000
  • Nu online
Waarom gebruik je de 'view' en niet het 'model' of de 'data' om iets te herberekenen ? :?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op vrijdag 24 juni 2005 @ 15:54:
Waarom gebruik je de 'view' en niet het 'model' of de 'data' om iets te herberekenen ? :?
Omdat ik geen idee heb hoe het nog meer kan .. zou je iets duidelijker kunnen zijn over het model en de data? en hoe volgens jou een betere manier is om iets te herberekenen?

  • whoami
  • Registratie: December 2000
  • Nu online
Maw: waarom wil je perse door je datagrid lopen om die gegevens te herberekenen ?

En als je het perse zo wilt doen, waarom ga je dan strings met elkaar gaan concatteneren ipv de waardes te gaan optellen ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op vrijdag 24 juni 2005 @ 16:16:
Maw: waarom wil je perse door je datagrid lopen om die gegevens te herberekenen ?

En als je het perse zo wilt doen, waarom ga je dan strings met elkaar gaan concatteneren ipv de waardes te gaan optellen ?
Waarom de datagrid doorlopen?
Hoe moet je anders aan de waarden van de textboxes komen. Deze worden immers dynamisch neergezet!

strings met elkaar gaan concatteneren
Dat was meer een test om te kijken hoe de gegevens daar uit kwamen. het wordt nog wel anders. Ik moet eerst de waardes uit de textboxed krijgen met het juiste product erbij.

  • whoami
  • Registratie: December 2000
  • Nu online
Verwijderd schreef op vrijdag 24 juni 2005 @ 16:38:
[...]


Waarom de datagrid doorlopen?
Hoe moet je anders aan de waarden van de textboxes komen. Deze worden immers dynamisch neergezet!
Die waardes komen toch ergens anders vandaan.... uit je datatable bv.

[ Voor 4% gewijzigd door whoami op 24-06-2005 17:38 ]

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:54

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op vrijdag 24 juni 2005 @ 15:59:
[...]


Omdat ik geen idee heb hoe het nog meer kan .. zou je iets duidelijker kunnen zijn over het model en de data? en hoe volgens jou een betere manier is om iets te herberekenen?
ItemDataBound-event? Daar kan je bij de origenele gegevens. En als je een formatting gaat gebruiken, kan je het sowieso al schudden, aangezien de optelling dan al heel anders kan gaan worden, als die uberhaupt dan al lukt

[ Voor 25% gewijzigd door gorgi_19 op 24-06-2005 18:40 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
whoami schreef op vrijdag 24 juni 2005 @ 17:38:
[...]
Die waardes komen toch ergens anders vandaan.... uit je datatable bv.
Ok .. dus als ik jouw begrijp dan wil jij weer die datatable (of in mijn geval dataview) weer opvragen en daaruit de aantallen halen? Maar dan kom je toch nooit bij de textboxes? Je zult hooguit bij de columns komen volgens mij ..

  • whoami
  • Registratie: December 2000
  • Nu online
Textboxes ? Wat heb jij met textboxes ?
Je wilt toch de gegevens ?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op vrijdag 24 juni 2005 @ 18:44:
Textboxes ? Wat heb jij met textboxes ?
Je wilt toch de gegevens ?
Ik denk dat je het niet helemaal goed gelezen hebt .. het databinden lukt helemaal en de grid staat er ook. Maar nu heb ik dit in mn datagrid staan:
Visual Basic .NET:
1
2
3
4
5
<asp:TemplateColumn HeaderText="Aantal">
    <ItemTemplate>
        <asp:TextBox id="Textbox2" Text='<%# DataBinder.Eval(Container.DataItem, "Aantal") %>' width="25" Runat="server"></asp:TextBox>
    </ItemTemplate>
</asp:TemplateColumn> 


en nu wil ik per rij die waarde weer uit die textbox halen. Een textbox is bedoeld om waardes te kunnen veranderen, dus de waardes zullen ws anders zijn dan in de datasource (datatable) van de datagrid

Verwijderd

Verwijderd schreef op vrijdag 24 juni 2005 @ 18:56:

en nu wil ik per rij die waarde weer uit die textbox halen. Een textbox is bedoeld om waardes te kunnen veranderen, dus de waardes zullen ws anders zijn dan in de datasource (datatable) van de datagrid
Ik weet niet precies of het bij asp.net exact hetzelfde werkt als bij gewoon winforms, maar volgens mij als je data goed gebind is heb je de textboxen niet meer nodig om die data te krijgen. Als de gebruiker iets wijzigd dan gebeurt dat automatisch in de datatable waarmee hij gekoppeld is.

  • Blizard
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op vrijdag 24 juni 2005 @ 19:47:
Ik weet niet precies of het bij asp.net exact hetzelfde werkt als bij gewoon winforms, maar volgens mij als je data goed gebind is heb je de textboxen niet meer nodig om die data te krijgen. Als de gebruiker iets wijzigd dan gebeurt dat automatisch in de datatable waarmee hij gekoppeld is.
Confirmed .. als alles goed gedaan is hoef je er volgens mij ook geen extra werk voor te doen ?

Verwijderd

Topicstarter
Blizard schreef op zaterdag 25 juni 2005 @ 09:18:
[...]

Confirmed .. als alles goed gedaan is hoef je er volgens mij ook geen extra werk voor te doen ?
En hoe kan ik die datatable weer opvragen? Dim dTable As New DataTable = Datagrid.DataSource? Dat kan weer niet want in de datasource zit de dataview?

Kortom, ik wordt hier knettergek. Heeft niet iemand een goed voorbeeld in VB.NET hierover? En misschien een goed voorbeeld van ITemplate .. ik vind er genoeg maar die moeten allemaal zonodig in C# zijn.

Please willen jullie me een eindje opweg helpen. Als ik maar eenmaal waardes uit een textbox kan halen die in de datagrid staat!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:54

gorgi_19

Kruimeltjes zijn weer op :9

Eigenlijk weinig trek om je veel op weg te helpen, aangezien je er bij anderen blijkbaar ook niet de neiging toe hebt, maar afaik is een vereiste voor dit soort geintjes dat viewstate op enabled staat, wat bij jou niet het geval is. De rest mag je zelf dan bedenken.

Verder heeft aspalliance een translator voor C# naar VB.Net, dus dat mag geen excuus zijn.

[ Voor 25% gewijzigd door gorgi_19 op 26-06-2005 16:04 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op zondag 26 juni 2005 @ 15:57:
Verder heeft aspalliance een translator voor C# naar VB.Net, dus dat mag geen excuus zijn.
Sorry .. dat wist ik niet ..

  • whoami
  • Registratie: December 2000
  • Nu online
Verwijderd schreef op zondag 26 juni 2005 @ 15:34:
[...]
Please willen jullie me een eindje opweg helpen. Als ik maar eenmaal waardes uit een textbox kan halen die in de datagrid staat!
Ik stel voor dat je even een goed boek gaat halen mbt ASP.NET

Kijk trouwens ook eens naar de properties van DataView in de MSDN.

[ Voor 11% gewijzigd door whoami op 26-06-2005 17:03 ]

https://fgheysels.github.io/


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 05-05 07:31

Swerfer

Hmm...

Zoek eens met google naar:

asp.net findcontrol datagrid textbox

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Verwijderd

Topicstarter
gorgi_19 schreef op zondag 26 juni 2005 @ 15:57:
maar afaik is een vereiste voor dit soort geintjes dat viewstate op enabled staat, wat bij jou niet het geval is. De rest mag je zelf dan bedenken..
Als je dat nou eerder had gezegd .. ik heb het nu voor elkaar! Dankzij jouw tip!
whoami schreef op zondag 26 juni 2005 @ 17:03:
Ik stel voor dat je even een goed boek gaat halen mbt ASP.NET.
Ik heb al 4 boeken!

En trouwens .. ik weet niet of het aan mij ligt .. maar volgens mij heerst hier een mentaliteit dat jullie wel willen helpen maar met minimale antwoorden. Ik denk dat men veel meer heeft aan wat meer tekst en uitleg. Daar leert men juist van!
Of komt het dat ik (zoals gorgi_19 zei) zelf ook niet echt antwoord?

  • whoami
  • Registratie: December 2000
  • Nu online
Verwijderd schreef op zondag 26 juni 2005 @ 17:28:
[...]

En trouwens .. ik weet niet of het aan mij ligt .. maar volgens mij heerst hier een mentaliteit dat jullie wel willen helpen maar met minimale antwoorden. Ik denk dat men veel meer heeft aan wat meer tekst en uitleg. Daar leert men juist van!
Of komt het dat ik (zoals gorgi_19 zei) zelf ook niet echt antwoord?
We willen hier mensen best helpen.
Echter, sommige mensen zijn hier vooral om zelf antwoord te krijgen op hun vragen, en die vragen zijn soms echt wel zeer 'basic'. Op zo'n vragen wordt er idd meestal geantwoord met korte vragen. Dit is niet om de mensen te pesten ofzo, maar omdat het eigenlijk de bedoeling is dat je zelf ook bijleert. En dat kan niet, als je alle antwoorden voorgekauwd krijgt.
In dat geval is het gewoon beter om hier en daar een hint / tip / kort antwoord te geven, zodanig dat diegene die een probleem heeft, ook zelf actief op zoek gaat naar de oplossing voor z'n probleem.
(Dan moet je natuurlijk wel wat meer moeite doen, wat verder gaan zoeken, even eea bijlezen in de MSDN, op andere sites, etc...)

https://fgheysels.github.io/


  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

Vooral als het om developen gaat is het beter dat je zelf begrijpt wat je moet veranderen dan dat wij de hele code voor je fixen of een kant en klare oplossing bieden.

In die vier boeken staan neem ik aan ook het asp.net page processing model en de datagrid uitgelegd?

Ow en, heel nuttig: www.datagridgirl.com (de goeroe(esse)) van datagrids ;)

[ Voor 15% gewijzigd door guanpedro op 26-06-2005 17:40 ]

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • Glorix Jim
  • Registratie: Februari 2000
  • Laatst online: 04-05 16:29
wat hij zegt :)

Tja, als je echt niets inhoudelijks toe te voegen hebt, post dan liever niets ipv deze opmerking

[ Voor 19% gewijzigd door whoami op 27-06-2005 09:07 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:54

gorgi_19

Kruimeltjes zijn weer op :9

En dat was dus niet eens de oplossing voor het probleem, aangezien zo een constructie zonder viewstate toch gedoemd is te mislukken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1