[asp.net] onclick aanroepen vanuit een ander functie

Pagina: 1
Acties:

  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ok ik heb bepaalde functies die dingen uitvoeren, deze worden aangesproken door buttons die hebben een commandname, veel buttons wijzen naar dezelfde functie, in die functie filter ik op id.

Dan wordt er dus iets gedaan aan de hand van dat id

Maar nu wil ik bij mijn website niet allemaal dubbele code hebben, dus mijn vraag is kan ik ook gewoon vanuit een andere functie zo'n onclick functie aanroepen

mijn onclick ziet er als volgt uit
code:
1
2
3
4
5
Sub Account_Click(sender As Object, e As EventArgs)
  Select sender.id.toString
     case "doiets"
  end select
End Sub


Hoe kan ik deze functie dan aanroepen via een andere functie?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

Ligt er maar net aan, dit kan bv:
code:
1
2
3
4
5
6
7
8
9
Sub Button_Click(sender As Object, e As EventArgs)
  Account_Click(sender, e) 
End Sub

Sub Account_Click(sender As Object, e As EventArgs)
  Select sender.id.toString
     case "doiets"
  end select
End Sub

oogjes open, snaveltjes dicht


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Waarom zorg je er niet voor dat ze gewoon allemaal Account_Click als EventHandler hebben?

Never underestimate the power of


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
[nohtml]
dominion99 schreef op 29 oktober 2002 @ 14:54:

Maar nu wil ik bij mijn website niet allemaal dubbele code hebben, dus mijn vraag is kan ik ook gewoon vanuit een andere functie zo'n onclick functie aanroepen
Ja dat kan. Had je het gewoon eens uitgeprobeerd....

Aan een OnClick event hang er een gewone functie, die een bepaalde signature moet hebben. Als je de naam van die functie weet, dan kun je gewoon die functie ergens anders in je code oproepen.

In Delphi kan je het ook bv zo doen:
code:
1
2
3
if Assigned (Button1.OnClick) then begin
  Button1.OnClick(Sender);
end;


AFAIK kan je dat in .NET niet, wat ik wel zeer vreemd vind.... Misschien iemand die weet hoe het wel moet in .NET? (De eventhandler dus aanroepen zonder dat je zijn naam weet, dus adhv de delegate).

https://fgheysels.github.io/


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Nou Don Facundo, zo bedoel ik het niet.

Omdat er niet altijd geklikt hoeft te worden om deze functie aan te roepen
Dus er is niet altijd een sender, deze wil ik eigelijk gewoon zelf maken

En dat zelfde geld voor cameodski, een datagrid event is anders als een eventargs bijvoorbeeld

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
dominion99 schreef op 29 oktober 2002 @ 15:04:
Nou Don Facundo, zo bedoel ik het niet.

Omdat er niet altijd geklikt hoeft te worden om deze functie aan te roepen
Dus er is niet altijd een sender, deze wil ik eigelijk gewoon zelf maken

En dat zelfde geld voor cameodski, een datagrid event is anders als een eventargs bijvoorbeeld
Dan moet je een generieke functie maken die je ook zonder een klik kunt aanroepen. Bijvoorbeeld eentje die alleen een sender als parameter heeft. Sender heb je trouwens wel altijd nodig, omdat je die gebruikt om het id te bepalen. Maar je kunt daar natuurlijk alles instoppen wat je maar wilt.
Vervolgens kun je deze functie overal en altijd aanroepen.

Never underestimate the power of


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
dominion99 schreef op 29 oktober 2002 @ 15:04:
Nou Don Facundo, zo bedoel ik het niet.

Omdat er niet altijd geklikt hoeft te worden om deze functie aan te roepen
Dus er is niet altijd een sender, deze wil ik eigelijk gewoon zelf maken

En dat zelfde geld voor cameodski, een datagrid event is anders als een eventargs bijvoorbeeld


Je kunt gewoon eender waar zetten:
code:
1
Button1_Click(null);

of
code:
1
button1_Click(this);

oid.

https://fgheysels.github.io/


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Ja cameodski zoiets heb ik nu ook maar gemaakt, ik ben alleen benieuwd of dat het toch op die manier mogelijk is

En whoami, wat voor een ID krijg je dan als je dat button1_Click(this) uitvoerd

je zult zowieso nog een EventArg mee moeten geven

en 'this' en 'null' bestaan beide niet in asp.net, dat moet je volgens mij vervangen door 'me'

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
dominion99 schreef op 29 oktober 2002 @ 15:39:
Ja cameodski zoiets heb ik nu ook maar gemaakt, ik ben alleen benieuwd of dat het toch op die manier mogelijk is

En whoami, wat voor een ID krijg je dan als je dat button1_Click(this) uitvoerd

je zult zowieso nog een EventArg mee moeten geven
In het geval van this krijg je het id terug van 'this'. In het geval van null zul je een nullpointerexception krijgen.

Je kunt natuurlijk ook de aanroep zo doen:
code:
1
button1_Click(button1)

dan krijg je het id van button1.
en 'this' en 'null' bestaan beide niet in asp.net, dat moet je volgens mij vervangen door 'me'

Dat bestaat wel in ASP.NET als je C# gebruikt als achterliggende taal. ASP.NET is geen taal, jij gebruikt VB.NET in je ASP.NET pagina's en in VB.NET is me idd het equivalent van C#'s this.

https://fgheysels.github.io/


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
bedoel ik, als ik in een andere functie dit zeg
AccountClick(me, E)

Dan krijg ik een Not Object reference, omdat hij geen ID heeft van de sender

maar goed, het maakt niks uit ik ga wel weer verder met een andere oplossing

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Voor die eventargs kan je gewoon null meegeven. of anders doe je:
code:
1
Button1_Click(button1, new EventArgs())

oid, maar dan wel in de VB.NET notatie in jouw geval.

https://fgheysels.github.io/


  • dominion99
  • Registratie: December 2001
  • Laatst online: 13-08-2025
Maar die Sender is gewoon een object, is het niet mogelijk om een ID aan het object te geven.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

(Button)Sender, casten dus: vb iets van Sender As Button

oogjes open, snaveltjes dicht

Pagina: 1