Avatar billede nomis Praktikant
19. oktober 2005 - 08:18 Der er 5 kommentarer og
1 løsning

ID i Repeater

Mit problem er i ASP.net hvor jeg ønsker at lave udtræk fra en kunde-database. For hvert element i databasen (repræsenteret af en række i en tabel), vil jeg oprette en slet-knap, som naturligvis skal slette den pågældende kunde via en SQL-kommando.
Til at udskrive kunde-tabellen bruger jeg en repeater, og lidt forenklet ser koden med problemet sådan her ud:


<script  runat="server">
Sub slet(sender As Object, e As EventArgs)
  SQL = "DELETE FROM kunde WHERE kundenavn=?????"
End Sub
</script>

<html>
<body>

<form runat="server">

<asp:Repeater id="customers" runat="server">

<HeaderTemplate>
<table border="1" width="100%">
<tr><th>FIRMANAVN</th><th>ADRESSE</th></tr>
</HeaderTemplate>

<ItemTemplate>
<tr bgcolor="#f0f0f0">
<td><%#Container.DataItem("firmanavn")%> </td>
<td><%#Container.DataItem("addresse")%> </td>
<td><asp:Button id="button1" Text="slet" runat="server" OnClick="slet"/>
</td>

</tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>

</html>
</body>


i onclick-kommandoen til min button, kan jeg specificere en metode, men hvordan kan jeg i denne metode se hvilken knap, brugeren har trykket på? Den sender kun variablerne (sender As Object, e As EventArgs) med, og jeg kan åbenbart ikke sende flere variabler. Jeg har selv tænkt på en løsning med at give hver knap forskellig id, men hvordan gør jeg dette i en Repeater? Hvad vil den bedste løsning være?
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 08:30 #1
du kan sætte commandname på button til kundenavnet.
<asp:Button id="button1" Text="slet" commandname="<%#Container.DataItem("kundenavn")%>" runat="server" OnClick="slet"/>
I den slet funktion der caster du sender objectet til en knap.
i c# gør man det på den måde
Button btn = (Button)sender;

så kan du få kunde navnet ud med btn.CommandName.
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 08:38 #2
jeg tror at Button btn = (Button)sender; også virker i vb.net.
din slet funktion kommer dermed til at se sådan ud:
<script  runat="server">
Sub slet(sender As Object, e As EventArgs)
Button btn = (Button)sender;
  SQL = "DELETE FROM kunde WHERE kundenavn=btn.CommandName"
End Sub
</script>

forenklet selvfølgelig
Avatar billede dr_chaos Nybegynder
20. oktober 2005 - 14:12 #3
hjalp det ?
Avatar billede nomis Praktikant
21. oktober 2005 - 05:12 #4
Ja, det løste mit problem. Jeg brugte CommandName som du skrev.

1000 tak :-)

Hvordan giver jeg dig point? Du har skrevet løsningen som kommentar.
Avatar billede dr_chaos Nybegynder
21. oktober 2005 - 08:26 #5
jeg smider bare et svar du kan accepterer :)
Avatar billede dr_chaos Nybegynder
21. oktober 2005 - 08:26 #6
ups svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester