Свойства и функции списка строк табличного вопроса

Список строк для табличного вопроса доступен через объект rows. В основном rows используется для доступа к строкам по коду, например Q.rows[5], но также предоставляет набор различных свойств и функций.

count

Возвращает общее количество строк.

visibleCount

Возвращает количество видимых строк. Например:

return Q.rows.visibleCount > 1 ? ok : skip;

width

Позволяет задать необходимую ширину колонки таблицы, в которой отображаются строки (первая колонка). Значение можно указать в процентах (например 40%), либо в пикселях (например 300px). Также можно указать значение auto, тогда ширина колонки будет автоматически рассчитана браузером. Пример:

Q.rows.width = '30%';

getAll()

Возвращает все строки в виде массива. Например:

Q.rows.getAll().forEach(function (row) {
    row.text += 'Строка с кодом ' + row.code + '<br>';
}); 

getCodes()

Возвращает массив кодов всех строк.

getVisibleCodes()

Возвращает массив кодов всех видимых строк.

getVisible()

Возвращает видимые строки в виде массива.

showAll()

Делает видимыми все строки в табличном вопросе.

show(code, codes, answer, row, column)

Делает видимыми строки, коды которых переданны в параметрах. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют. Например:

Q.rows.show(1, [3,5,6], Q.answers[8], Q3.rows[10], Q6.columns[12]);
Q.rows.show(Q1.getCheckedCode(), Q2.getCheckedCodes());

showOnly(code, codes, answer, row, column)

Делает видимым только строки, коды которых переданны в параметрах. Остальные строки будут скрыты. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют.

showCodes(codes)

Делает видимыми строки, коды которых содержатся в переданном массиве codes. Вместо этого метода рекомендуется использовать более универсальный show().

showOnlyCodes(codes)

Делает видимыми только строки, коды которых содержатся в переданном массиве codes. Вместо этого метода рекомендуется использовать более универсальный showOnly().

showFromTo(codeFrom, codeTo)

Делает видимыми все строки, коды которых попадают в диапазон от codeFrom до codeTo. Например:

Q.rows.showFromTo(2, 50);

showOnlyFromTo(codeFrom, codeTo)

Делает видимыми только те строки, коды которых попадают в диапазон от codeFrom до codeTo.

hideAll()

Скрывает все строки в табличном вопросе. Строки, у которых установлен флаг Всегда отображается, остаются всегда видимыми.

hide(code, codes, answer, row, column)

Скрывает строки, коды которых переданны в параметрах. Может принимать 1 код, массив кодов или объект ответа, строки или колонки таблицы. Количество параметров и их порядок значения не имеют.

hideCodes(codes)

Скрывает строки, коды которых содержатся в переданном массиве codes. Вместо этого метода рекомендуется использовать более универсальный hide().

hideFromTo(codeFrom, codeTo)

Скрывает все строки, коды которых попадают в диапазон от codeFrom до codeTo.

hasVisible

Возвращает true, если есть хотя бы одна видимая строка. Например:

return Q.rows.hasVisible ? ok : skip;

randomize()
randomize(codes)
randomizeFromTo(fromCode, toCode)

Перемешивает случайным образом либо все строки, либо указанные, если в качестве параметра передан массив кодов строк, либо все строки в указанном диапазоне.

Q.rows.randomize();
Q.rows.randomize([1,3,5,7]);
Q.rows.randomizeFromTo(10, 20);

rotate()
rotate(shift)
rotate(codes)
rotate(codes, shift)
rotateFromTo(fromCode, toCode)
rotateFromTo(fromCode, toCode, shift)

Производит ротацию строк (циклический сдвиг на определенный шаг). Если не переданы никакие параметры - ротируются все строки. Также можно передать шаг сдвига в параметре shift, при этом если шаг не передается - используется внутренний шаг, который автоматически увеличивается на 1 для каждого следующего интервью, что дает правильное равномерное распределение. Для ротации определённых строк нужно передать массив codes с кодами этих строк. Также в параметрах from и to можно указать диапазон строк, подлежащих ротации. Примеры:

Q.rows.rotate();
Q.rows.rotate(5);
Q.rows.rotate([1,2,3,4,5,6]);
Q.rows.rotate([1,2,3,4,5,6], 5);
Q.rows.rotateFromTo(1, 6);
Q.rows.rotateFromTo(1, 6, 5);

setOrder(orderedCodes)

Устанавливает необходимый порядок следования строк. В параметре orderedCodes передается массив кодов строк, в необходимом порядке. Например:

Q.rows.setOrder([5,4,3,2,1]);

add(code, text)

Добавляет новую строку с указанным кодом и текстом в конец списка. Созданная строка возвращается как результат. Например:

// добавляем новую строку 5 в конец списка
var row = Q.rows.add(5, 'Санкт-Петербург');
// включаем в ней флаг "Всегда отображается"
row.flags |= 0x0008;

insert(refCode, code, text)

Создает новую строку с указанным кодом и текстом и вставляет её перед строкой, код которой указан в параметре refCode. Созданная строка возвращается как результат. Например:

// добавляем новую строку 5 перед строкой 6
Q.rows.insert(6, 5, 'Москва');

insertAfter(refCode, code, text)

Создает новую строку с указанным кодом и текстом и вставляет её после строки, код которой указан в параметре refCode. Созданная строка возвращается как результат. Например:

// добавляем новую строку 7 после строки 6
Q.rows.insertAfter(6, 7, 'Санкт-Петербург');

remove(code)
remove(row)

Удаляет указанную строку. Например:

// удаляем строку 5 из списка
Q.rows.remove(5);
// то же самое:
Q.rows.remove(Q.rows[5]);

load(fromQuestion)
load(fromList)

Загружает строки из другого вопроса либо из другого списка колонок. Например:

Q.rows.load(Q3);
Q.rows.load(Q3.columns);


Читайте далее: свойства и функции колонки табличного вопроса.