2013-06-26 2 views
1

Я не могу понять, почему несогласованность данных, отображаемых на странице VF. Я показываю идентификатор и дату в таблице блоков страниц. Я использую тег apex: column для отображения данных. Когда я объявляю данные в атрибуте value без какого-либо пробела, я получаю Id длиной 15 символов, но когда я включаю пробел в значение attirbute, отображается 18 символов char. Я не могу понять, почему так? enter image description hereНесогласованный рендеринг значения даты и идентификатора на странице Visualforce

<apex:pageblock> 
<apex:pageblockTable value="{!acc}" var="a"> 
    <apex:column value="{!a.Id}" headerValue="Id without space(15 char)"/> 
    <apex:column value=" {!a.Id}" headerValue="Id with space(18 char)"/> 
    <apex:column value="{!a.CreatedDate}" headerValue="Date defined in the Value attributes"/> 
    <apex:column headerValue="Date not declared in the Value Attribute" >{!a.CreatedDate}</apex:column> 
</apex:pageblockTable> 
</apex:pageblock> 

ответ

1

Когда вы тянете только столбец без пробелов, Visualforce отображает поле с помощью интерфейса вне коробки для этого типа. За это API docs:

ID поле в пользовательском интерфейсе Salesforce содержит 15-символьный баз-62, чувствительных к регистру строки

Когда вы добавляете строку в поле ID, вы преобразуя значение идентификатора в строку. Поскольку страница интересуется только значением, таким как SOQL-запрос или метод строки Apex, возвращается «сырое» значение.

18-разрядный регистр безопасный вариант ID возвращается все API вызовы