Как получить ID справочного значения в JS зная только название для того что бы потом установить его в выпадающем списке справочника?
Нравится
Коваленко Илья,
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" }); esq.addColumn('Id'); esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name)); esq.getEntityCollection(function(response) { if(response.success) { var entities = response.collection.getItems(); Terrasoft.each(entities, function(item){ var id = item.get('Id'); }); } });
Добрый день!
Без дополнительного запроса в базу для получения id справочника по названию (например) не получится сделать.
Если справочник не планируется изменять, то значения справочника лучше вынести в константы.
Сидоров Александр В., Можете показать пример такого запроса?
Коваленко Илья,
var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" }); esq.addColumn('Id'); esq.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 'Name', name)); esq.getEntityCollection(function(response) { if(response.success) { var entities = response.collection.getItems(); Terrasoft.each(entities, function(item){ var id = item.get('Id'); }); } });
Сидоров Александр В.,
В данном контексте не очень хороший пример. Зачем выбирать все записи, если можно взять только первую через top 1?
esq.rowCount = 1
Алла Савельева,
Согласен. Но справочник может быть не уникален по имени. Поэтому и привел пример со списком, где надо делать постобработку
Сидоров Александр В.,
Да, может быть не уникален по имени, но в итоге ведь в общем случае будет выбрана первая запись, удовлетворяющая условиям.