Re: Suggested extension for WASelectTag
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Message-ID | <[email protected]> |
Hi Paul, I I admit not having invested too much time into the iteration possibility, I just couldn't get it to work. For some reason I couldn't get the combination of a callback for the select tag and setting value: on each option to work. I don't remember the datails, but I tried two or three ways and failed every time. I may have given up too fast, because the solution I suggested is so easy and fast to implement... My favorite solution wouldn't be adding a new attribute to each option tag, but using the value attribute of the options for the business value. OTOH, the two argument block also allows for disabling options or any other manipulation of an option, so it's quite flexible. I'll take a look at WAInputElementContainer>>#renderSingleSelectionCustomOn: and see what I have missed in my attempts. Thanks for the pointer. Joachim Am 02.07.17 um 18:34 schrieb Paul DeBruicker: > Hi Joachim, > > I don't think you missed an existing way to set an attribute on a select tag > option. Other than iterating over the options like in e.g. > WAInputElementContainer>>#renderSingleSelectionCustomOn: I don't know how to > set them. > > > Seems like your method is more convenient than iterating over the option > tags. I'd add it for sure. > > > Paul > > > > jtuchel wrote >> Hi, >> >> >> I needed a way to add an attribute of each option in a select list, >> because Seaside uses the value attribute for its server side callback. >> >> The reason was I wanted to do something on the browser side >> onChange/onKeyUp based on some business values. >> >> >> Here is what I changed in WASelectTag: >> >> * added inst var: itemConfigBlock with getter and setter >> >> * changed #renderListItemLabelled: to >> >> >> renderListItem: anObject labelled: aString >> >> | option | >> >> option := canvas option. >> self hasCallback ifTrue: [option value: (self valueFor: anObject)]. >> titleBlock isNil ifFalse: [option title: (self titleFor: anObject)]. >> itemConfigBlock ifNotNil: [:block | block value: option value: >> anObject]. >> option >> selected: (self isSelected: anObject); >> disabled: (self isEnabled: anObject) not; >> with: aString >> >> >> And this is how you can use it: >> >> >> html select >> >> items: MyListOfItems; >> >> callback: []; >> >> itemConfigBlock: [:option :anObject| option attrbibuteAt: >> 'data-value' put: anObject someValue asString]. >> >> >> Was this available already and did I overlook it? >> >> Does this sound reasonable? Worth adding to Seaside? >> >> >> Joachim >> >> >> >> >> >> >> >> >> -- >> ----------------------------------------------------------------------- >> Objektfabrik Joachim Tuchel mailto: >> jtuchel@ >> Fliederweg 1 http://www.objektfabrik.de >> D-71640 Ludwigsburg http://joachimtuchel.wordpress.com >> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 >> >> _______________________________________________ >> seaside mailing list >> [email protected] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > > > > -- > View this message in context: http://forum.world.st/Suggested-extension-for-WASelectTag-tp4953167p4953223.html > Sent from the Seaside General mailing list archive at Nabble.com. > _______________________________________________ > seaside mailing list > [email protected] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside -- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:[email protected] Fliederweg 1 http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 _______________________________________________ seaside mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside