I have a table with three columns, the first two hold identifier values and the third holds a dropdown menu instantiated automatically for each entry. The data for the first two columns is read from a database.
Currently the dropdown menus are identified when selected and the database is queried using the getSelectedIndex function of the table to get data into the dropdowns.
How should I go about supplying the other table data to the dropdowns when they are initiated rather than waiting for a user to select a data row?
Where you create the dropdown? Why do you not fill it up immediately?
The dropdown is created as an embedded view by calling the view path in the columns section of the table properties and I am unable to create them on a entry-by-entry basis.
So, you could give parameters aswell to the view which then fills up the dropdown?
Yes, I am trying to send parameters through the view, but the parameters need to be from the same row in the other columns and I can only retrieve them from the the database after all the components are already created, by finding the correct row value that the dropdown is in using selectedRow
heh i see.
could you show me how you are filling them up right now?
Right now they are filled with a static list that’s hardcoded into the dropdown. I also have a changeScript that reads the chosen dropdown item and then pulls new parameters to use from the selected row.
Thank you for your help, I appreciate it
could you show me that changescript?^^
def valueChanged(self, previousValue, currentValue, origin, missedEvents):
“”"
This function will be called when the value of the property changes.
Arguments:
self: A reference to the component that is invoking this function.
previousValue: The previous value, as a qualified value object.
currentValue: The new value, as a qualified value object.
origin: The origin of the property value. Possible origin values include
Browser, Binding, BindingWriteback, Script, Delegate, Session, Project
missedEvents: A flag indicating that some events have been skipped due
to event overflow.
"""
id = self.view.params.id
colName = self.view.params.colName
if id != "NoId":
if colName != "NoId":
update = "UPDATE destination SET chuteID = ? WHERE " + colName + " = ? "
p = [self.props.value,id]
r = system.db.runPrepUpdate(update,p)
You are writing down the dropdowns options in the database when they click a row?
Thats not neccecary!
in your view with the dropdown you can add the params (or just the ones you need):
column
columnIndex
row
rowIndex
value
rowData
These will get automattically filled in to each row correctly, no need to bind it in the viewParams either!
Here i just use a textfield and label but you see what i mean?^^
(viewpaths name is just ‘text’ xd made a quick example)


