Hi All,
I must be missing something as I am struggling to get a dropdown option to work in a datatable.
I have added a default datatable to a form and added a second column, I have kept the default names, DataTable1, Column1 and Column2.
I have pasted the code below into the Javascript Editor.
fd.rendered(function() {
fd.control('DataTable1').$on('edit', function(e) {
console.log(e)
if (e.column.field === "Column1") {
//pass widget + current column value
console.log(e.model);
populateColumn(e.widget, e.model.Column1);
}
})
});
function populateColumn(widget, value) {
widget.setDataSource({
data: ['Category A', 'Category B', 'Category C']
});
//set value if one was select
widget.value(value);
}
Saved the form, refreshed the preview but the form never shows the dropdown options in Column1 as per example, Work with Data Table using JS on Plumsail Forms (public forms) — Public web forms.
Please could you advise as to what I'm doing wrong?
Regards
Mark
Hello @mloveridge,
The code is correct and should work.
Is that a complete code you are using? Are you getting any errors in the browser console(F12)?
Could you please share export the form so I could check it on my side.
Hi @mnikitina
It is the only code I have on the form, I have created another test form in the desktop designer with just the elements required. F12 returns the following error.
TypeError: Cannot read property 'setDataSource' of null
at populateColumn (eval at e._executeCustomJavaScript (app.js:39), <anonymous>:70:12)
at a.eval (eval at e._executeCustomJavaScript (app.js:39), <anonymous>:62:13)
at Ve (app.js:55)
at a.e.$emit (app.js:55)
at init.edit (25.8667d8c7839be2100ada.js:1)
at init.trigger (1.ac4c27de03b159676c40.js:1)
at init.editCell (25.8667d8c7839be2100ada.js:1)
at init._editModel (25.8667d8c7839be2100ada.js:1)
at init.addRow (25.8667d8c7839be2100ada.js:1)
at HTMLAnchorElement.<anonymous> (25.8667d8c7839be2100ada.js:1)
Please see exported file.
DataTableTest.xfds (4.4 KB)
Regards
Mark
Hello @mloveridge,
Thank you for the exported form.
You need to change the column type to Dropdown to be able to populate column options.
Hi @mnikitina
Doh! Sorry such a silly oversight...
At this time I guess the dropdown entries have to be defined in the javascript and can not be dynamically pulled from a Excel document like a standard dropdown element?
Regards
Mark
1 Like
Hello @mloveridge,
In Web designer, Excel file uploaded to OneDrive can be used as a source Drop Down, Single Choice (radio buttons), and Multiple Choice (checkboxes) fields.
You can find more information in our blog post:
Hi @mnikitina
I am using the method that is documented on other elements on the form but I was referring to dropdown menu's in a datatable specifically as data source is not an option that I can see. You can add a static list or use javascript as long as you remember to change the type to dropdown, a little prod a myself!?
Regards
Mark
Hello @mloveridge,
Yes, there is currently no data source selection available for a dropdown column in the DataTable control.
Would you consider a paid support for adding this feature? Please contact us via support@plumsail.com for more information.