Memo#
Элемент управления, предназначенный для отображения и редактирования текста, с возможностью задания количества строк
Свойства#
id#
Идентификатор контрола.
Отнаследовано от Control
hint#
Всплывающая подсказка, которая появляется при наведении на контрол.
Отнаследовано от Control
hintLength#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | - |
максимальное количество символов для всплывающей подсказки
tags#
Позволяет объединять контролы в группы, возвращает массив имен.
Отнаследовано от Control
captionWidth#
Ширина заголовка в колонках (для Bootstrap-верстки).
Отнаследовано от Control
editorWidth#
Ширина контрола в колонках (для Bootstrap-верстки).
отнаследовано от Control
captionTextAlign#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | left | left, right |
Выравнивание текста заголовка контрола.
доступно с версии 3.26.0
denyRoles#
Список ролей без прав на данный элемент.
Отнаследовано от Control
readRoles#
Список ролей на чтение данных.
Отнаследовано от Control
writeRoles#
Список ролей на изменение данных.
Отнаследовано от Control
visible#
Видимость контрола.
Отнаследовано от Control
width#
Ширина контрола.
Отнаследовано от Control
caption#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Заголовок контрола
placeholder#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Вспомогательный текст в поле ввода контрола
bind#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Свойство, к которому биндится контрол
editMode#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | inline | popup, inline |
Режим редактирования.
Для memo в гриде - только popup
controlRows#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| int | 1 |
Количество строк.
Количество однострочных контролов, по общей высоте которых (с учетом расстояния между ними) вычисляется высота memo,в случае заданного height вычисляется через height
format#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | text | text, html |
Задает формат редактирования/отображения текста
value#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Задает значение контрола
enabled#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | true | true/false |
Доступность контрола для редактирования
readOnly#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | false | true/false |
Режим "только для чтения"
height#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | auto |
Высота мемо в пикселях.
По умолчанию "auto" и вычисляется через controlRows. Например, height = "100px".
font#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - |
Стиль шрифта по умолчанию.
Стиль шрифта который будет выбран по умолчанию, по умолчанию берется шрифт заданный в теме
fontSize#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| string | - | 13px |
Размер шрифта который будет выбран по умолчанию
sourceCodeEditable#
| тип | значение по умолчанию | допустимые значения |
|---|---|---|
| bool | false | true/false |
Доступность редактирования html кода. Редактирование доступно, если format = "html".
Методы#
focus#
Устанавливает фокус на контрол.
Отнаследовано от Control.
События#
valueChanged#
Возникает при смене значения
Пример
html форматирование#
Для html форматирования необходимо задать свойство format со значением html.
Поддерживаемый функционал:
- Жирный текст
- Курсивный текст
- Подчеркнутый текст
- Тип шрифта
- Размер шрифта
- Цвет текста
- Цвет фона
- Выравнивание по левому краю
- Выравнивание по правому краю
- Выравнивание по центру
- Отступ слева
- Нумерованный список
- Маркерованный список
- Вставить ссылку
- Вставить картинку
Особенности работы в режиме html#
Контрол memo в режиме редактирования html будет отображать входную строку в виде html-документа.
Для защиты от xss-уязвимости определен набор допустимых тегов:
Информация
div, span, li, ul, ol, br, blockquote, p, b, em, strong, sub, pre, i, font, h1, h2, h3, h4, u, strong, em, a, img.
Эти теги используются для html форматирования документа. Все остальные теги будут экранированы и отображены в виде текста. В гриде (в Memo колонке) для увеличения производительности все запрещенные теги удаляются перед добавлением в разметку страницы, вместо их поиска и последующего экранирования.
Если присваивается невалидный html, то браузер может обрезать часть строки, что может привести к потере данных при сохранении документа. В связи с этим, если прикладник сам формирует строку, которая в дальнейшем будет использоваться контролом Memo, необходимо учитывать, что спецсимволы '>' и '<' в формируемой строке должны использоваться только для создания разрешенных тегов, в остальных случаях их необходимо экранировать.
При редактировании данных через контрол экранирование спецсимволов ('<', '>', '&' и др.) происходит автоматически. Например, если пользователь вводит строку '1 > 5', то в контроле это значение будет храниться в экранированном виде - '1 > 5'. Тут мы видим, что отображаемый символ '>' заменился на значение '>', но на отображение в контроле это никак не влияет.
Работа с изображениями#
Контрол Memo в режиме редактирования html поддерживает вставку изображений с помощью комбинации клавиш Ctrl-V и контекстное меню.
Метод Memo getTextForSend возвращает deferred объект, результом которого будет текст, изображения в котором не будут ссылаться на сайт, что позволяет просматривать его там где нет доступа к сайту. Пример использования:
Пример
Баги#
Не работает вставка текста из буфера обмена в браузере Firefox (протестировано в Firefox версии 49.0.1).
Примечания#
- В ячейке грида и во всплывающей подсказке (hint) текст отображается без форматирования. При этом слова могут объединяться, если используется переход на новую строку.
- В IE11 выключена возможность drag&drop.
- В IE11 не пооддерживается вставка изображений, если начальное изображение имеет представление в виде ссылки на сторонний ресурс (в атрибуте src тэгa img указан сторонний ресурс).
Пример#
Контрол Memo предоставляет более комфортный способ ввода и отображения текстовых данных большого объема. Для этого в контроле реализован режим редактирования во всплывающем окне (свойство editMode) и режим, поддерживающий форматирование текста (свойство format). Также можно настроить количество отображаемых строк текста (свойство controlRows).