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
select
hasplaceholder
,placeholderDisabled
andplaceholderValue
options which can be used to insert an empty value into a list if all you need is an extra "empty" option.Allan