Отображение вычисляемого поля с несколькими строками? (x-страницы)

Хорошо, у меня есть имя и адрес клиента, и я просто хочу отобразить их в одном вычисляемом поле, а не в отдельных строках в таблице, чтобы сэкономить недвижимое имущество. Я пробовал несколько итераций @newline, но безрезультатно. Может ли кто-нибудь дать мне некоторые рекомендации?

Я также хотел бы НЕ включать Address2, если он пуст. Я новичок в javascript. Спасибо за вашу помощь.

var a = document1.getItemValueString("CompanyName");
var b = document1.getItemValueString("Address1");
var c = document1.getItemValueString("Address2");
var d = @Char(13);
a + @NewLine() + b + "<br>" + c;

person Mike Gonzalez    schedule 15.10.2015    source источник


Ответы (2)


Установите свойство escape="false" в вычисляемом поле и добавляйте <br /> всякий раз, когда вам нужна новая строка.

Вы также можете установить это свойство на вкладке свойств, выбрав тип контента «HTML»:

введите описание изображения здесь

Ваш код будет

var a = document1.getItemValueString("CompanyName");
var b = document1.getItemValueString("Address1");
var c = document1.getItemValueString("Address2");
a + "<br />" + b + (c ? "<br />" + c : "");
person Knut Herrmann    schedule 15.10.2015
comment
Можно было бы сделать то же самое без HTML и добавить символы новой строки \n вместо тегов разрыва HTML. - person Eric McCormick; 15.10.2015
comment
@Eric: к сожалению, \n не работает. Текстовые строки разделяются новой строкой внутри диапазона при отправке в браузер, но браузер меняет новые строки на пробелы. - person Knut Herrmann; 15.10.2015
comment
Совершенно верно по поводу тега span. Я знаю, что делал это раньше, но все, что я должен был сделать в то время, вероятно, было бы более интенсивным, чем переключение на HTML-контент. - person Eric McCormick; 15.10.2015
comment
Имейте в виду, что использование escape=false с данными, отправленными пользователем, может привести к уязвимостям безопасности, связанным с межсайтовым скриптингом (XSS). например, злонамеренный пользователь А устанавливает свой адрес следующим образом: <script> alert('executing script'); // script to submit user's session authentication to user A's server </script> Затем невиновный пользователь Б просматривает адрес пользователя А, информация о пользователе Б отправляется на сервер пользователя А, и пользователь А может выдавать себя за пользователя Б. Использование escape=true гарантирует, что <script> в address не будет рассматриваться как активный JavaScript браузера и вместо этого будет присутствовать в HTML как &lt;script&gt;. - person Maire Kehoe - IBM; 27.10.2015

Майк,

Недавно мне пришлось сделать почти то же самое и использовать многострочное поле редактирования. Поместите тот же код в раздел данных <xp:inputTextArea> (многострочное поле редактирования в палитре), а затем сделайте его доступным только для чтения.

введите здесь описание изображения

person Steve Zavocki    schedule 15.10.2015