Поле даты xPages в IBM Notes 9, значение по умолчанию не отображается, а значок средства выбора не выровнен должным образом

Я протестировал приложение Xpage в клиенте Notes (xpinc) 9 и обнаружил следующие ошибки в средстве выбора даты/времени.

Задано значение по умолчанию для поля Дата.

  1. При просмотре в xpinc не удалось увидеть значение по умолчанию в поле даты. При щелчке значка выбора даты отображается значение по умолчанию. Это может быть связано с тем, что значение по умолчанию находится за значком выбора даты.
  2. Значок выбора даты отображается справа, а не слева.
  3. Как только мы выбираем дату, мы больше не можем видеть значок выбора даты.

Мой код выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:inputText id="inputText1">
        <xp:this.defaultValue><![CDATA[#{javascript:@Date("16/12/2013")}]]></xp:this.defaultValue><xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
        <xp:this.converter>
            <xp:convertDateTime type="date"></xp:convertDateTime>
        </xp:this.converter>
    </xp:inputText>
    </xp:view>

При предварительном просмотре в Интернете значения по умолчанию отображаются нормально, а значок выбора выровнен правильно. Но при предварительном просмотре в IBM Notes 9 (xpinc) значение по умолчанию не отображается в поле. Пользовательский интерфейс поля даты выглядит плохо! Обратитесь по следующей ссылке

http://www-10.lotus.com/ldd/ndseforum.nsf/xpTopicThread.xsp?documentId=CA3D7B61284FEE3185257B6300352563

кажется, проблема с клиентом Notes 9.


Я снова попробовал то же самое в клиенте Notes 9. Мой исходный код, как показано ниже

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">

    <xp:this.beforeRenderResponse><![CDATA[#{javascript:viewScope.DateEntered = viewScope.DateEntered || @Yesterday()}]]></xp:this.beforeRenderResponse>
    <xp:table>
        <xp:tr>
            <xp:td>
                <xp:label value="Sample date input" id="label1"></xp:label></xp:td>
            <xp:td></xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td></xp:td>
            <xp:td></xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>
                <xp:label value="Please enter a date:" id="label2"></xp:label></xp:td>
            <xp:td>
                <xp:inputText id="inputText1"
            value="#{viewScope.DateEntered}">
            <xp:this.converter>
                <xp:convertDateTime type="date"></xp:convertDateTime>
            </xp:this.converter>
            <xp:dateTimeHelper></xp:dateTimeHelper>
        </xp:inputText>
            </xp:td>
        </xp:tr>
        <xp:tr>
            <xp:td>
                <xp:label value="Please enter some Text:" id="label3"></xp:label></xp:td>
            <xp:td>
                 <xp:inputText id="inputText2"
            value="#{viewScope.textEntered}">
        </xp:inputText></xp:td>
        </xp:tr>
    </xp:table>
</xp:view>

Html code in notes client like below

     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="en">
    <head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/@Da&amp;@Ib&amp;2Tcxsp.css&amp;2TcxspLTR.css&amp;2TcxspRCP.css.css">
    <script type="text/javascript" src="/xsp/.ibmxspres/dojoroot-1.8.0/dojo/dojo.js" djConfig="locale: 'en-us', parseOnLoad: true"></script>
    <script type="text/javascript" src="/xsp/.ibmxspres/.mini/dojo/.en-us/@Ie&amp;@Iu.js"></script>
    <script type="text/javascript">dojo.require('ibm.xsp.widget.layout.xspClientDojo')</script>
    <script type="text/javascript">dojo.require('ibm.xsp.widget.layout.xspClientRCP')</script>
    <script type="text/javascript">dojo.require('dojo.parser')</script>
    <script type="text/javascript">dojo.require('ibm.xsp.widget.layout.DateTextBox')</script>

    </head>
    <body class="xspView tundra">
    <form id="view:_id1" method="post" action="/xsp/Dev9!!ESI/Sprint55/AcctMgr.nsf/xpCombo.xsp?1367948337%3FOpenXPage&amp;xspRunningContext=Notes" class="xspForm" enctype="multipart/form-data">
    <table><tr><td><span id="view:_id1:label1" class="xspTextLabel">Sample date input</span></td>
    <td></td>
    </tr>
    <tr><td></td>
    <td></td>
    </tr>
    <tr><td><span id="view:_id1:label2" class="xspTextLabel">Please enter a date:</span></td>
    <td><input type="text" value="2013-05-06" id="view:_id1:inputText1" name="view:_id1:inputText1" class="xspInputFieldDateTimePicker" dojoType="ibm.xsp.widget.layout.DateTextBox" iconStyleClass="xspInputFieldDatePickerIcon" constraints="{datePattern:&quot;MMM d, yyyy&quot;,timePattern:&quot;h:mm:ss a&quot;,selector:&quot;date&quot;}"></td>
    </tr>
    <tr><td><span id="view:_id1:label3" class="xspTextLabel">Please enter some Text:</span></td>
    <td><input type="text" id="view:_id1:inputText2" name="view:_id1:inputText2" class="xspInputFieldEditBox"></td>

    </tr>
    </table>

    <input type="hidden" name="$$viewid" id="view:_id1__VUID" value="!dgw1o52zpc!">
    <input type="hidden" name="$$xspsubmitid">
    <input type="hidden" name="$$xspexecid">
    <input type="hidden" name="$$xspsubmitvalue">
    <input type="hidden" name="$$xspsubmitscroll">
    <input type="hidden" name="view:_id1" value="view:_id1"></form>
    <script type="text/javascript">

    XSP.addOnLoad(function() {
    XSP.attachValidator("view:_id1:inputText1",null,new XSP.DateConverter("MMM d, yyyy","This field is not a valid date."));
    }); 

    </script>
    <input type="hidden" id="XspBridgeIn">
    <input type="hidden" id="XspBridgeOut">
    </body>

Но все же я сталкиваюсь с той же проблемой. Поле даты не выровнено должным образом

https://www.dropbox.com/s/9bmj3nmcbwy1cxd/DatePicker.jpg

Я использую клиент Notes 9 и машину Xp.

Есть ли проблема с моим клиентом заметок?


person Mahendran Rathinam    schedule 06.05.2013    source источник
comment
Добавьте фрагмент исходного кода. Это происходит и в пустой форме (только с одним полем метки и даты)? Вы использовали элементы управления формы extlib? Настоятельно рекомендуется   -  person stwissel    schedule 06.05.2013
comment
Это происходит на простой x-странице, где у меня есть только одно поле даты. Я не использую какой-либо элемент управления библиотекой расширений. Я использовал только средство выбора даты и времени из поддона управления. Проблема только в Notes 9 xpinc.   -  person Mahendran Rathinam    schedule 07.05.2013
comment
Если изменить тему приложения на One UIV2, ONE UIV2.1, веб-стандарт, средство выбора даты выровняется правильно и сможет хорошо видеть в xpinc. Но если тема приложения является серверной по умолчанию или одним пользовательским интерфейсом, это выглядит плохо в xpinc.   -  person Mahendran Rathinam    schedule 08.05.2013
comment
Тогда исправьте свой сервер по умолчанию :-) Интересно - мне нужно проверить, играл ли я с темой в моей тестовой базе данных.   -  person stwissel    schedule 09.05.2013
comment
Не могу обновить тему сервера по умолчанию. это может повлиять и на другое приложение.   -  person Mahendran Rathinam    schedule 09.05.2013
comment
Затем установите для своего приложения OneUI[v›2] :-) В любом случае это рекомендуемая настройка — не стесняйтесь принять ответ   -  person stwissel    schedule 09.05.2013
comment
Перезапишите один класс css в теме по умолчанию (тема Notes), мы можем решить проблему. Посмотрите мой ответ вниз. Надеюсь, поможет   -  person Mahendran Rathinam    schedule 11.05.2013


Ответы (2)


Добавление следующего Css в xpage может решить проблему выравнивания средства выбора даты в Notes 9 xpinc.

<style type="text/css">
     .xspInputFieldEditBox > div {
  width:auto;
}
</style>

Ваш исходный код будет следующим

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <style type="text/css">
     .xspInputFieldEditBox > div {
  width:auto;
}
</style>

    <xp:inputText id="inputText1" value="#{viewScope.inputText1}"
        defaultValue="#{javascript:@Now()}">
        <xp:this.converter>
            <xp:convertDateTime type="date" />
        </xp:this.converter>
        <xp:dateTimeHelper />
    </xp:inputText>
    </xp:view>

Даже с изменением темы, такой как One UI V2, 2.1, веб-стандарт, вы можете решить эту проблему.

person Mahendran Rathinam    schedule 11.05.2013

Я пробовал это:

<?xml version="1.0" encoding="UTF-8"?>
 <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">

<xp:this.beforeRenderResponse><![CDATA[#{javascript:viewScope.DateEntered = viewScope.DateEntered || @Yesterday();}]]>
    </xp:this.beforeRenderResponse>
<xe:formTable id="formTable1" formTitle="Sample date input"
    formDescription="Test for date functionality">
    <xe:formRow id="formRow1" for="inputText1" label="Please enter a date:"
        labelPosition="left">
        <xp:inputText id="inputText1"
            value="#{viewScope.DateEntered}">
            <xp:this.converter>
                <xp:convertDateTime type="date"></xp:convertDateTime>
            </xp:this.converter>
            <xp:dateTimeHelper></xp:dateTimeHelper>
        </xp:inputText>
    </xe:formRow>
    <xe:formRow id="formRow2" for="inputText2" label="Please enter some Text:"
        labelPosition="left">
        <xp:inputText id="inputText2"
            value="#{viewScope.textEntered}">
        </xp:inputText>
    </xe:formRow>
</xe:formTable>
</xp:view>

Работает безупречно. Как выглядит ваш код? Если вы используете привязку данных, то из свойств элемента управления не извлекается значение по умолчанию, а значение, предоставляемое переменной, к которой привязан элемент управления. Связывание всегда важнее значений по умолчанию.

Когда я смотрю на исходный код страницы (то, что в данном случае генерируется в клиенте, который вы можете видеть на машине, где установлен ваш дизайнер Domino), я получаю:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="/xsp/.ibmxspres/.mini/css/2Ojcore.css&amp;2Ojdojo.css&amp;2OldefaultTheme.css&amp;2OldojoTheme.css&amp;@Da&amp;@Ib&amp;@Th&amp;@Ti.css">
<script type="text/javascript" src="/xsp/.ibmxspres/dojoroot-1.8.0/dojo/dojo.js" djConfig="locale: 'en-us', parseOnLoad: true"></script>
<script type="text/javascript">dojo.registerModulePath('extlib', '/xsp/.ibmxspres/.extlib');</script>
 <script type="text/javascript" src="/xsp/.ibmxspres/.mini/dojo/.en-us/@Eya&amp;@Ie&amp;@Iu.js"></script>
<script type="text/javascript">dojo.require('ibm.xsp.widget.layout.xspClientDojo')</script>
<script type="text/javascript">dojo.require('ibm.xsp.widget.layout.xspClientRCP')</script>
<script type="text/javascript">dojo.require('dojo.parser')</script>

<script type="text/javascript">dojo.require('extlib.theme.OneUIA11Y')</script>
<script type="text/javascript">dojo.require('ibm.xsp.widget.layout.DateTextBox')</script>
</head>
<body class="xsp lotusui tundra">
<form id="view:_id1" method="post" action="/xsp/My2003Xpages.nsf/Test6.xsp?1367936627%3FOpenXPage&amp;xspRunningContext=Notes" class="lotusForm" enctype="multipart/form-data">
<fieldset id="view:_id1:formTable1">
<table class="lotusFormTable" role="presentation" cellpadding="0" cellspacing="0" border="0"><tbody>
<tr><td class="lotusFormTitle" colspan="3"><h2>Sample date input<div class="lotusMeta">Test for date functionality</div></h2></td></tr>
<tr class="lotusFormFieldRow"><td style="width:15%" class="lotusFormLabel"><label for="view:_id1:inputText1">Please enter a date:</label></td><td><input type="text" value="2013-05-06" id="view:_id1:inputText1" name="view:_id1:inputText1" class="xspInputFieldDateTimePicker" dojoType="ibm.xsp.widget.layout.DateTextBox" iconStyleClass="xspInputFieldDatePickerIcon" constraints="{datePattern:&quot;MMM d, yyyy&quot;,timePattern:&quot;h:mm:ss a&quot;,selector:&quot;date&quot;}">        <td></td></td></tr>
<tr class="lotusFormFieldRow"><td style="width:15%" class="lotusFormLabel"><label for="view:_id1:inputText2">Please enter some Text:</label></td><td><input type="text" id="view:_id1:inputText2" name="view:_id1:inputText2" class="xspInputFieldEditBox"><td></td></td></tr>
</tbody>
</table>

</fieldset>

<input type="hidden" name="$$viewid" id="view:_id1__VUID" value="!dgw05ue5xc!">
<input type="hidden" name="$$xspsubmitid">
<input type="hidden" name="$$xspexecid">
<input type="hidden" name="$$xspsubmitvalue">
<input type="hidden" name="$$xspsubmitscroll">
<input type="hidden" name="view:_id1" value="view:_id1"></form>
<script type="text/javascript">

XSP.addOnLoad(function() {
XSP.attachValidator("view:_id1:inputText1",null,new XSP.DateConverter("MMM d, yyyy","This field is not a valid date."));
}); 

</script>
<input type="hidden" id="XspBridgeIn">
<input type="hidden" id="XspBridgeOut">
</body>
</html>

Что вы получаете?

person stwissel    schedule 07.05.2013
comment
Если изменить тему приложения на One UIV2, ONE UIV2.1, веб-стандарт, средство выбора даты выровняется правильно и сможет хорошо видеть в xpinc. Но если тема приложения является серверной по умолчанию или одним пользовательским интерфейсом, это выглядит плохо в xpinc. - person Mahendran Rathinam; 08.05.2013