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

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


applet:short_note

Сокращенная заметка на Form Applet

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

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

1) Пишем BS, который по входящему 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/11/19 09:39

applet/short_note.txt · Последние изменения: 2018/09/19 16:48 (внешнее изменение)