Инструменты пользователя

Инструменты сайта


applet:child_info_form_applet

Отображение дочерней информации на форм апплетах

Добрый день

Стояла следующая задача: Отобразить на форм апплете Обращений n последних заметок, урезав их до фамилии автора, даты создания и первых 50-ти символов текста. При нажатии на «короткую» заметку, в том же поле вывести полный текст заметки. При повторном нажатии – полный текст скрыть.

Вариант реализации:

1. Пишем Browser Script, который по входящему Row_ID Обращения определяет n последних заметок и заворачивает их в общий html код примерно такого формата:

<div style = 'width:350px; height:140px; border: solid 1px Gray;'> <!-- Тут задаем общий размер элемента и внешний вид-->
                <div id = 'noteMain'> <!-- Общий контейнер для коротких заметок-->
                               <div onclick='mHide(1)'>Текст 1 заметки</div>
                               <div onclick='mHide(2)'>Текст 2 заметки</div>
                               ...
                               <div onclick='mHide(n)'>Текст n заметки</div>
                </div>  
                <div id='n1' onclick='mHide(1)' style='display: none;'>Полный текст заметки 1</div>
                <div id='n1' onclick='mHide(2)' style='display: none;'>Полный текст заметки 2</div>
                ...
                <div id='nn' onclick='mHide(n)' style='display: none;'>Полный текст заметки n</div>
</div>

Полный текст заметок не отображается на экране до вызова функции mHide(при нажатии на заметку), которая переключает режим отображения

2. Добавляем функцию mHide в файл с темплейтом апплета (либо как-то иначе встраиваем в html структуру документа). Код функции:

function mHide(id) {       
                if (document.getElementById("n"+id).style.display=='none') {
                               document.getElementById("n"+id).style.display='inline-block'; 
                               document.getElementById("noteMain").style.display='none'; 
                }   else {
                               document.getElementById("n"+id).style.display='none'; 
                               document.getElementById("noteMain").style.display='inline-block'; 
                }                                
}

3. Создаём на БК новое калькулируемое поле, которе будет получать результаты работы БС из пункта 1. 4. Добавляем на апплет новый контрол, указав в параметре «HTML Display Mode» значение DontEncodeData.

Результаты получились такими:

Отображение 4 коротких заявок:

Отображение раскрытой полной заявки после нажатия на короткую:

Ярославцев Андрей 2014/12/09 11:08

applet/child_info_form_applet.txt · Последние изменения: 2016/11/04 14:09 (внешнее изменение)