[asp.net / c#] Meesturen argument DropDownList

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15:03
Ik heb in een repeater in asp.net een aantal items en voor elk item is een DropDownList aanwezig met een autopostback=true. Er is geen submit button.

Nu wil ik behalve de selectedvalue ook nog een argument meegeven met daarin een uniek id (waar de repeater item aan gekoppeld is).

Bij gewone knoppen heb je daar het argument CommandArgument voor (zie hier. Deze is echter niet aanwezig voor de DropDownList. Een vieze oplossing zou zijn om de naamgeving aan te passen aan het item id, maar zoals gezegd is dat niet zo mooi. De selectedvalue kan ik natuurlijk wel aanpassen maar ook dat is niet netjes.

Een collega van mij opperde om ItemCommand event van de repeater af te vangen, maar deze werkt dus alleen voor buttons en die zijn er niet.

Heeft iemand hier een goede oplossing voor?

  • joepHDW
  • Registratie: September 2003
  • Laatst online: 17-07-2024
Zorg ervoor dat de selectedvalue ook info bevat van de unieke repeaterid...

BvB,

repeaterid*1.000.000 + value dropdown.

Dit kun je gewoon splitsen met een simpele berekening...

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15:03
joepHDW schreef op dinsdag 28 juni 2005 @ 15:53:
Zorg ervoor dat de selectedvalue ook info bevat van de unieke repeaterid...

BvB,

repeaterid*1.000.000 + value dropdown.

Dit kun je gewoon splitsen met een simpele berekening...
Dat is inderdaad een oplossing, maar...
Dennis schreef op dinsdag 28 juni 2005 @ 15:44:
De selectedvalue kan ik natuurlijk wel aanpassen maar ook dat is niet netjes.
...niet zo netjes dus ;).

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 05-05 21:37
Kun je niet zo'n delegate/handle ding maken voor jouw toepassing. Dat je die functionaliteit zelf toevoegd/implementeerd.

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Op een Control zit de functie RaiseBubbleEvent(object source, EventArgs args). Als je een control hebt die in een RepeaterItem zit en je roept die functie aan, waarbij args een instantie is van CommandEventArgs, dan zou de Repeater een ItemCommand event af moeten vuren (als ik het allemaal nog goed begrijp, want het is alweer een tijdje geleden :)).

Je zou dus een afgeleidde control kunnen maken van DropDownList met daarin een CommandName en CommandArgument property en in de SelectedIndexChanged event van die dropdownlist RaiseBubbleEvent aan kunnen roepen. De eventargs instantie die je meestuurt, kun je afleiden van CommandEventArgs waarbij je naast de CommandName/CommandArgument ook de SelectedValue van de dropdownlist meegeeft.

Je moet dan natuurlijk wel in de ItemCommand event van de repeater de CommandEventArgs casten naar jouw eigen DropDownListCommandEventArgs.

Ik hoop dat je het nog snapt :D, anders moet je even met Reflector kijken hoe bijv. LinkButton dat doet in de RaisePostBackEvent, want die moet ongeveer hetzelfde doen.

[ Voor 7% gewijzigd door TlighT op 28-06-2005 16:30 ]