How to add an empty option for a field
How to add an empty option for a field
Hello,
I've upgraded the datatable editor to the latest version and now I have an error in trying to add an empty option on a select field.
This is the C# script I used before and that it worked fine:
.Field(new Field("Goods.ID_Tank")
.Options("Tanks WHERE Is_Drum = 1 AND Enabled = 1 UNION SELECT 0, '' ", "ID", "Code")
Essentially, I read the ID and CODE columns from the Tanks table as the value/label for the options. However, by performing a UNION with an ID of 0 and an empty string (‘’) as the label, I used to add this value to the selectable options. Now, with the new version, I’m encountering an error of ‘INVALID COLUMN NAME’
I attempted to write it like this:
.Field(new Field("Goods.ID_Tank")
.Options("Tanks WHERE Is_Drum = 1 AND Enabled = 1 UNION SELECT 0 as ID, '' as Code ", "ID", "Code")
but the INVALID COLUMN NAME error persists.... any idea how I can solve this issue?
Thanks!
Ciao.
This question has an accepted answers - jump to answer
Answers
The fact that it was working before was definitely an error - sorry. The first parameter passed to the
Options()method with that overload is the table name. It will be escaped as a field. It sounds like delimiting of that as the field name wasn't being done before.The full API docs for that method are here.
The Editor .NET libraries don't directly have a UNION option, for that you would need a custom function. You can run a plain SQL statement with the
Database.Sql()method which you can then use to build the result object.Allan
Hi allan,
thanks for your prompt reply.
I solved it adding this after the first Options method call:
field.Options().Add("", "0");
The problem is that I'm not so good with fluent API, so I converted the whole controller like this:
var field7 = new Field("Goods_Synonyms.ID_Tank");
field7.Options("Tanks WHERE Is_Drum = 1 AND Enabled = 1", "ID", "Code");
field7.Options().Add("", "0");
field7.SetValue(ID_Tank);
field7.SetFormatter(Format.NullEmpty());
model.Field(field7);
But now it works smoothly...
Thanks again.
Ciao.
Nice one. It is also worth noting that
selecthasplaceholder,placeholderDisabledandplaceholderValueoptions which can be used to insert an empty value into a list if all you need is an extra "empty" option.Allan