M
motogarri
Привет. Помогите плс разобаться.
На странице имеется датасорс и панель с несколькими репит-контролами. Репиты отображают наборы полей из документа, типа:
FirstName_1, LastName_1, MiddleName_1
FirstName_2, LastName_2, MiddleName_2
. . . . . . . . . . .
FirstName_15, LastName_15, MiddleName_15
В документе нет поля, которое показало бы сколько имён присутствует в таблице, значит нужно вычислять самому
Получается этот цикл нужно выполнять на вычислении количества строк репита и в формуле скрытия таблицы в которую помещён репит.
Наверняка же можно вычислить количество строк только один раз на каком-нибудь событии датасорса и передать через viewScope? Только вот на какое бы событие датасорса я бы ни вешал вычисление, либо 'datasource1' not found, либо страница уже прорисовалась и скрытие не сработало.
На странице имеется датасорс и панель с несколькими репит-контролами. Репиты отображают наборы полей из документа, типа:
FirstName_1, LastName_1, MiddleName_1
FirstName_2, LastName_2, MiddleName_2
. . . . . . . . . . .
FirstName_15, LastName_15, MiddleName_15
В документе нет поля, которое показало бы сколько имён присутствует в таблице, значит нужно вычислять самому
JavaScript:
var n = 0;
for (var i = 1; i <= 16; i++) {
if(datasource1.hasItem("FirstName_" + i) || datasource1.hasItem("LastName_" + i) || datasource1.hasItem("MiddleName_" + i)){
var fname = datasource1.getItemValueString("FirstName_" + i);
var lname = datasource1.getItemValueString("LastName_" + i);
var mname = datasource1.getItemValueString("MiddleName_" + i);
if(lname + fname + mname != "") n += 1;
}
}
return n;
Наверняка же можно вычислить количество строк только один раз на каком-нибудь событии датасорса и передать через viewScope? Только вот на какое бы событие датасорса я бы ни вешал вычисление, либо 'datasource1' not found, либо страница уже прорисовалась и скрытие не сработало.
Последнее редактирование: