Как получить 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
Алла Савельева,
Согласен. Но справочник может быть не уникален по имени. Поэтому и привел пример со списком, где надо делать постобработку
Сидоров Александр В.,
Да, может быть не уникален по имени, но в итоге ведь в общем случае будет выбрана первая запись, удовлетворяющая условиям.