I have a list in which each row may contain up to three buttons. I need to know what was clicked to I've tried to add event parameters but this gives an error at runtime. This is my code (c is the button number).
#COM_OWNER.Set_Button Name(tabStudents + '.Row%' + #x.AsString + '.Status' + #c.AsString) Text(#NOMCDN) Color(white) Buttonfacecolor(#bossecgry) Onclick(SELNOM + #c.AsString)
#COM_OWNER.Set_EventParameter Event(tabStudents + '.Row%' + #x.AsString + '.Status' + #c.AsString + '.OnClicked') Param_N(1) Paramvalue(#NOMCDE)
Is this possible.
Event parameters
-
tsupartono
- Posts: 289
- Joined: Wed Apr 18, 2012 10:21 am
Re: Event parameters
It may be better to use the CurrentOp.SenderID property to determine the button that was clicked.
This approach uses the row IDs to determine the row of the button, so you must assign an ID to each of the row.
Then you would use the CurrentOp.SenderID#1 and CurrentOp.SenderID#2 to determine which button was clicked.
In this case, SenderID#1 would give you the column name, and SenderID#2 would give you the Row ID.
If you still want to use action parameter, you would need to create an explicit PerformAction operation like so:
This approach uses the row IDs to determine the row of the button, so you must assign an ID to each of the row.
Code: Select all
#COM_OWNER.Set Property('Row#1.FirstCol.Text') To('Button 1')
#COM_OWNER.Set Property('Row#1.ID') To('1')
#COM_OWNER.Set Property('Row#2.FirstCol.Text') To('Button 2')
#COM_OWNER.Set Property('Row#2.ID') To('2')
#COM_OWNER.Set Property('Row#3.FirstCol.Text') To('Button 3')
#COM_OWNER.Set Property('Row#3.ID') To('3')
In this case, SenderID#1 would give you the column name, and SenderID#2 would give you the Row ID.
Code: Select all
#COM_OWNER.Get Property('/CurrentOp.SenderID#1') Into(#ColumnName)
#COM_OWNER.Get Property('/CurrentOp.SenderID#2') Into(#RowID)
Code: Select all
#COM_OWNER.Using Element('Row#1.FirstCol.OnClick.Operation')
#COM_OWNER.Set Property(Type) To(PerformAction)
#COM_OWNER.Set Property(Action) To(BUTTON_CLICK)
#COM_OWNER.Set Property('Param#1') To(Button1AsParam)
#COM_OWNER.EndUsing