Иногда возникает необходимость отключения возможности пользователю добавления новых строк в таблицу, и при этом необходимо оставить возможность - редактирования уже существующих записей в таблице. В таком кейсе - переключить таблицу в режим Только для чтения - не подойдет. Штатного механизма реализации тоже нет.
Для реализации потребуется скрыть последнюю строку таблицы с формы, тем самым пользователь не сможет добавлять новые строки в таблицу, и при этом возможность редактирования существующих строк - останется.
jquery скрипт на форме с таблицей, в виджет коде:
Код:
<script>
$(document).ready(async () => {
window.setTimeout(async () => {
$(`elma-type-table-full-line[data-index="<%=ViewContext.data.num%>"]`).css('display', 'none');
}, 100)
});
</script>
Клиентский сценарий на форме, для вычисления последней строки, которую и нужно скрыть. Получаем путем вычисления общего количества строк в таблице + 1:
Код:
/* Client scripts module */
async function onInit () {
if(Context.data.table)
{
ViewContext.data.num = Context.data.table.length + 1;
}
}