Ik ben bezig met een winkelmandje met daarop een aantal artikelen, en een checkbox per artikel. Als je voor één of meer artikelen de checkbox aanvinkt en op update klikt moeten die producten verwijderd worden.
Nu ben ik al de h-e-l-e dag bezig, letterlijk
, om de status van die checkbox op te pikken en het wil maar niet lukken.
De checkbox is dus niet gebonden. De winkelmand werkt goed, ik kan er meerdere producten instoppen. Daar geen problemen. Maar als ik van één of meer producten de checkbox aanvink en deze probeer uit te lezen dan lukt dat niet. Ze hebben altijd de status die default ingesteld staat).
Ik doe dat nu met de volgende code
Deze code geeft in een label achter de Checkbox aan "wel" of "niet". De bedoeling is uiteindelijk om van de aangecheckte Artikelen de method Artikelverwijderen aan te roepen. (Maar dat kan wellicht ook op een andere plek, de bovenstaande code is het laatste wat ik geprobeerd heb om uit te lezen wat de checkbox.checked is, en ik heb nog niet eens geprobeerd om het ArtikelNr op te pikken van de regel waar het om gaat)
Maar...ik krijg alleen maar "wel" als de checkboxen default op true staan, of "Niet" als ze default op false staan. Als ik ze van status verander en dan deze event doorloop krijg ik niet de waarde die ik op het scherm zie. Ik heb het idee dat ik e.o.a. eigenschap moet instellen die er voor zorgt dat de "schermwaarde" doorgegeven wordt, want de status wordt wel degelijk uitgelezen, alleen niet de status die ik ze geef door te klikken.
Ik heb het ook onder ItemDataBound van de repeater geprobeerd (die doorloopt alle items die gebonden worden), maar omdat de checkboxen bij "postback" weer op hun default waarde staan krijg ik niet de waarde die ik instel.
Nu ben ik al de h-e-l-e dag bezig, letterlijk
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| <asp:Repeater ID="rptWinkelWagenGroot" runat="server" OnItemDataBound="rptWinkelWagenGroot_ItemDataBound" > <ItemTemplate> <asp:CheckBox ID="chkVerwijderArtikel" runat="server" EnableViewState="true" /> <asp:Label ID="lblVerwijder" runat="server" Text="etst"></asp:Label> <asp:Label ID="lblArtikelPrijs" runat="server" Text='<%# Eval("ArtikelSubTotaal", "{0,00:c}") %>'> <!---En zo nog wat productgegevens--> </ItemTemplate> </asp:Repeater> <asp:ImageButton ID="imbUpdate" runat="server" ImageUrl="~/images/button_update_cart.gif" onclick="imbUpdate_Click" /> |
De checkbox is dus niet gebonden. De winkelmand werkt goed, ik kan er meerdere producten instoppen. Daar geen problemen. Maar als ik van één of meer producten de checkbox aanvink en deze probeer uit te lezen dan lukt dat niet. Ze hebben altijd de status die default ingesteld staat).
Ik doe dat nu met de volgende code
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| protected void imbUpdate_Click(object sender, ImageClickEventArgs e) { for (int i = 0; i < rptWinkelWagenGroot.Items.Count; i++) { CheckBox chk = (CheckBox)rptWinkelWagenGroot.Items[i].FindControl("chkVerwijderArtikel"); if (chk.Checked) { Label lbl = (Label)rptWinkelWagenGroot.Items[i].FindControl("lblVerwijder"); lbl.Text = "wel"; //clsWinkelwagen.WW.ArtikelVerwijderen(ArtikelNr); } else { Label lbl = (Label)rptWinkelWagenGroot.Items[i].FindControl("lblVerwijder"); lbl.Text = "niet"; } } |
Deze code geeft in een label achter de Checkbox aan "wel" of "niet". De bedoeling is uiteindelijk om van de aangecheckte Artikelen de method Artikelverwijderen aan te roepen. (Maar dat kan wellicht ook op een andere plek, de bovenstaande code is het laatste wat ik geprobeerd heb om uit te lezen wat de checkbox.checked is, en ik heb nog niet eens geprobeerd om het ArtikelNr op te pikken van de regel waar het om gaat)
Maar...ik krijg alleen maar "wel" als de checkboxen default op true staan, of "Niet" als ze default op false staan. Als ik ze van status verander en dan deze event doorloop krijg ik niet de waarde die ik op het scherm zie. Ik heb het idee dat ik e.o.a. eigenschap moet instellen die er voor zorgt dat de "schermwaarde" doorgegeven wordt, want de status wordt wel degelijk uitgelezen, alleen niet de status die ik ze geef door te klikken.
Ik heb het ook onder ItemDataBound van de repeater geprobeerd (die doorloopt alle items die gebonden worden), maar omdat de checkboxen bij "postback" weer op hun default waarde staan krijg ik niet de waarde die ik instel.