Календарь Salesforce Sites не отображается

Недавно я начал экспериментировать с сайтами и создал базовую страницу.

<apex:page controller="newController">

    <apex:form >

    <apex:pageBlock title="Welcome {!$User.FirstName}"></apex:pageBlock>


    <apex:pageBlock mode="edit">

        <apex:pageBlockSection title="Travel Details" >

           <apex:inputField value="{!Booking.StartDateTime__c}"></apex:inputField>

            <apex:inputText value="{!Booking.EndDateTime__c}"></apex:inputText>

            <apex:inputField value="{!Booking.StartLocation__c}"></apex:inputField>

            <apex:inputField value="{!Booking.EndLocation__c}"></apex:inputField> 

     </apex:pageBlockSection>

    </apex:form>

Это два поля, которые я показываю - одна проблема: когда пользователь нажимает на поле, календарь не открывается, они действуют как обычное текстовое поле.

Я искал в Интернете и проверял разрешения на уровне пользователя и поля, и все, похоже, в порядке. Они имеют тип данных datetime.

Так кто-нибудь знает, как я могу отобразить этот календарь?

РЕДАКТИРОВАТЬ: Я предложил средства защиты кода, но, к сожалению, мне не повезло. В поле ввода теперь отображается текущая дата и время рядом с полем ввода (как в salesforce), но всплывающее окно календаря по-прежнему отсутствует. Я также построил контроллер. Возможно, проблема с javascript?

Любая помощь очень ценится, ура


person Jim    schedule 17.02.2012    source источник
comment
Вы также захотите заключить свои поля ввода в элемент apex: form   -  person Jeremy Ross    schedule 17.02.2012


Ответы (3)


Вам нужно определить стандартный контроллер и обернуть поле ввода в форму, чтобы календарь открывался, код должен выглядеть следующим образом

<apex:page standardController="Booking__c">
  <apex:form >
    <apex:inputfield value="{!Booking__c.StartDateTime__c}"/>
    <apex:inputfield value="{!Booking__c.EndDateTime__c}"/>
  </apex:form>
</apex:page>
person Mitch Hunt    schedule 17.02.2012
comment
Также в разработке есть предложение для специального сайта отдела продаж, расположенного в Зоне 51, ссылка: area51.stackexchange.com/ предложения / 37589 / salesforce. Возможно, стоит потратить время, чтобы проголосовать за него, если вам нужно задать больше вопросов. - person Mitch Hunt; 17.02.2012
comment
спасибо, Митч, я внес предложенные вами изменения, но всплывающее окно календаря отсутствует. Но спасибо за ссылку на area51 - отлично смотрится - person Jim; 19.02.2012
comment
Нет причин, по которым ваш код не должен работать, кроме отсутствия конца блока страницы, который мог бы быть копией и вставкой. Я воссоздал его в организации разработчиков, чтобы показать, что он работает. mitchqtest-developer-edition.ap1.force.com/test попробуйте посмотреть профиль вашего сайта и убедитесь, что у него есть необходимый доступ к объекту, если у вас все еще есть проблемы, опубликуйте код вашего контроллера или просто попробуйте использовать стандартный контроллер, если он не требуется. Изменить: создано только startdatetime, чтобы сэкономить время. - person Mitch Hunt; 20.02.2012
comment
Ура, Митч - мне просто нужно было активировать сайт, блин! - person Jim; 20.02.2012

Вместо этого попробуйте inputText:

Примечание. Поля только для чтения и поля для определенных объектов Salesforce со сложным автоматическим поведением, таких как Event.StartDateTime и Event.EndDateTime, не отображаются как редактируемые при использовании ‹apex: inputField›. Вместо этого используйте другой компонент ввода, например ‹apex: inputText›.

Источник: apex: inputField (Salesforce.com)

person Tim    schedule 17.02.2012
comment
Привет, Тим приветствует быстрый ответ. К сожалению, inputText не отображает календарь, поэтому он не совсем идеален. - person Jim; 19.02.2012

Я разобрался, если кто-то сталкивается с такой же проблемой, вам нужно активировать сайт.

В любом случае спасибо за все ответы.

person Jim    schedule 20.02.2012