[ASP.NET] Custom webcontrol events

Pagina: 1
Acties:

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 17-11 06:32
Ik heb een custom webcontrol gemaakt, met daarin onder andere een imagebutton, een textbox en een 2e imagebutton:
Afbeeldingslocatie: http://websitetester.nl/12345.gif
Nu wil ik events creeeren waarbij een klik op de afbeelding een event genereerd, en een klik op de imagebutton naast de textbox. Mijn webcontrol heeft als ID Artikelinfo, en de 2 events zouden Artikelinfo.AfbeeldingClick en Artikelinfo.WinkelwagenClick kunnen heten.

Ik heb gezocht op google en hier bij GoT, maar ik kom er maar niet achter hoe ik die events toevoeg en kan gebruiken. Kan iemand mij op weg helpen?

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


  • Xof
  • Registratie: Juni 2001
  • Laatst online: 12-05 10:38

Xof

OnClick?
Of ik begrijp je post verkeerd.. Visual studio geeft jou toch gewoon netjes alle mogelijkheden?

  • Brainstorm
  • Registratie: November 2000
  • Laatst online: 16-11 18:53
Inderdaad, in de codebehind van je control kun je twee eigen events maken, AfbeeldingClick en WinkelwagenClick. Vervolgens handel je de onclick events van beide imagebuttons af. In beide eventhandlers plaats je vervolgens code om je eigen events aan te roepen.

De control plaats je vervolgens binnen een pagina, waarna je weer eventhandlers kunt maken voor je zojuist gedefinieerde events.

Syntax van de events is redelijk simpel, bijvoorbeeld:

C#:
1
2
public event EventHandler WinkelwagenClick;
public event EventHandler AfbeeldingClick;
en om aan te roepen:
C#:
1
2
3
4
if (WinkelwagenClick != null)
{
   WinkelwagenClick(this, null);
}


Je kunt het ook uitbreiden door specifieke delegates te maken voor je events:
C#:
1
2
3
4
5
6
7
8
public delegate void BuyHandler(int articleId);
public event BuyHandler WinkelwagenClick;

int articleId = 1000;
if (WinkelwagenClick != null)
{
   WinkelwagenClick(articleId);
}

[ Voor 42% gewijzigd door Brainstorm op 13-06-2008 20:17 ]

Programmer's Drinking Song: 99 little bugs in the code, 99 bugs in the code, Fix one bug, compile it again, 100 little bugs in the code. (go to start if bugs>0)


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 17-11 06:32
Ik schrijf mijn code in vb.net, dus heb ik de code van Brainstorm als volgt toegepast:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Event AfbeeldingClick As EventHandler

........

Dim Afbeelding As New ImageButton
AddHandler Afbeelding.Click, AddressOf Afbeelding_Click
Afbeelding.ID = "Artikel"
Afbeelding.ImageUrl = "~/Images/" & ArtikelNummer & ".jpg"
Cell1Panel1.Controls.Add(Afbeelding)

........

Sub Afbeelding_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    RaiseEvent AfbeeldingClick(Me, New EventArgs)
End Sub

Maar de Sub Afbeelding_Click wordt niet getriggert als er op de afbeelding wordt geklikt... Wat doe ik fout?

edit:

Ik heb in de sub Afbeelding_Click de volgende code toegevoegd, waardoor ik zeker weet dat de event niet getriggert wordt omdat ik geen foutmelding krijg...
Visual Basic .NET:
1
2
3
4
5
Sub Afbeelding_Click(ByVal sender As Object, ByVal e As System.EventArgs)
   Dim a As Integer = 0
   a = 100 / a
   RaiseEvent AfbeeldingClick(Me, New EventArgs)
End Sub

[ Voor 38% gewijzigd door Swerfer op 14-06-2008 13:33 ]

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


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 17-11 06:32
Opgelost!

Ik had bij de textbox geen txtbx.ID = blaat maar alleen ID = blaat staan, en dat zorgde er uiteindelijk voor dat de events niet werden gertiggerd :(

Heeft me een halve dag zoeken en een hoop vraagtekens gekost 8)7

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