[ASP.NET] Checkbox in Repeater

Pagina: 1
Acties:

  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Zoals de titel het al zegt heb ik een repeater die een aantal gegevens ophaald.
De eerste kolom in de table bevat checkboxen, nu wil het uiteindelijk mogelijk maken om selected rows te verwijderen uit de DB.

Ik wilde hiervoor de ID van de checkbox wijzigen in de ID die opgehaald wordt uit de DB.

Nu geeft ASP.NET helaas een error

code:
1
2
3
4
5
6
7
8
<ItemTemplate>
                                                                <tr>
                                                                    <td width="50"><font color="white"><asp:CheckBox TextAlign="Right" ID="<%# Container.DataItem("ID") %>" Runat="server" Text='<%# Container.DataItem("ID") %>'></asp:CheckBox></font></td>
                                                                    <td width="375"><%# Container.DataItem("titel") %></td>
                                                                    <td width="130"><%# format(Container.DataItem("datum"),"g") %></td>
                                                                    <td width="110"><%# Container.DataItem("poster") %></td>
                                                                </tr>
                                                        </ItemTemplate>


De tekst van de checkbox kan ik wel de juiste ID meegeven die uit DB komt..

Hoe krijg ik het voor elkaar dat ik de ID van de textbox kan wijzigen naar de ID die uit DB komt, dus ID van de gehele ROW

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:26

gorgi_19

Kruimeltjes zijn weer op :9

Helaas, m'n glazen bol is kapot. Kan je mij vertellen wat die error is en op welke regel het mis gaat?
En kan je tegelijk een hele hoop spaties uit je code slopen, wnat dit leest niet :)

[ Voor 30% gewijzigd door gorgi_19 op 11-05-2005 13:00 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Controls in een repeater krijgen vanzelf al een oplopende ID van ASP.NET, en het kan zijn dat dat problemen oplevert zodra jij zelf een unieke ID gaat toekennen.

Als je een datagrid zou gebruiken, zou je zoiets oplossen door je ID veld (uit de database) in de DataKeyField property te zetten. Dan kun je daar je DataKey ophalen afhankelijk van de rij waarin de control staat die aangeklikt is.

Een repeater is hier helaas niet echt voor bedoeld.

[edit]Zoals gorgi zegt, zou het idd handiger zijn als je wat meer info post, in ieder geval de foutmelding die je krijgt.

[ Voor 13% gewijzigd door Not Pingu op 11-05-2005 13:21 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Parser-fout
Beschrijving: Er is een fout opgetreden bij het parseren van een bron die vereist is om aan deze aanvraag te voldoen. Raadpleeg de volgende details van deze parser-fout en pas het bronbestand waar nodig aan.

Parser-foutbericht: De servercode is niet juist samengesteld.

Regel 147:

<td width="50"><font color="white"><asp:CheckBox TextAlign="Right" ID="<%# Container.DataItem("ID") %>" Runat="server"></asp:CheckBox></font></td>

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Zet rond die <%# %> eens enkele apostrofes ipv. dubbele quotes?

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Dan krijg je dit:
Parser-foutbericht: <%# Container.DataItem("ID") %> is geen geldige identificatie.

heb geprobeerd: " " , "' '" , '" "'

[ Voor 29% gewijzigd door Friedchicken op 11-05-2005 13:35 ]


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

code:
1
<asp:CheckBox TextAlign="Right" ID='<%# Container.DataItem("ID") %>' Runat="server">


Werkt dit ook niet?
(Verbaast me overigens niks als het niet werkt, zoals ik al eerder aangaf.) Misschien kun je dit beter niet in een Repeater doen maar gewoon met handmatige HTML en een for-loopje?

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Nee werkt, ook niet...

Bedankt, ik gaat even verder stoeien, ben niet zo voor handmatige opties.

Suggesties welkom !

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Ik neem even aan dat je bedoeling is dat er een aantal velden aangevinkt kunnen worden, waarna er op een knop gedrukt wordt en dat dan alle geselecteerde velden gedelete worden?
Dan kan ik weinig anders bedenken, een Datagrid laat wel makkelijker toe om er die database ID bij te halen, maar dan kun je alsnog maar 1 record per submit deleten.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Ja ik wil idd uit een lijst kunnen selecten welke row ik ga deleten.

Dus select checkbox(en) en daarmee de gehele row

en hit button verwijderen..

  • Friedchicken
  • Registratie: Maart 2000
  • Laatst online: 20-06-2015
Opgelost:

*.aspx
code:
1
<td width="50"><font color="white"><asp:CheckBox TextAlign="Right" ID="Checkbox1" Runat="server" Text='<%# Container.DataItem("ID") %>'></asp:CheckBox></asp:CheckBox></font></td>



*.aspx.vb
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
connectie.Open()
        Dim j As Integer
        For j = 0 To RptOverzicht.Items.Count - 1
            Dim chkblaat As CheckBox = CType(RptOverzicht.Items(j).FindControl("Checkbox1"), WebControls.CheckBox)

            Dim queryVerwijderen As String
            If chkblaat.Checked Then
                queryVerwijderen = "DELETE FROM frontpage_berichten WHERE ID='" & chkblaat.Text & "'"
                Dim cmdVerwijderen As SqlCommand = New SqlCommand(queryVerwijderen, connectie)
                cmdVerwijderen.ExecuteNonQuery()
            End If

        Next
        connectie.Close()
        Ophalen_Data()
Pagina: 1