Xpages 日历默认值
我试图在dijit.Calendar中设置当前日期,但由于某些原因,它没有设置,而且我也没有收到任何错误。我还试图获取所选值以填充字段或会话范围变量,但这也没有发生-只需获取一个Xpages 日历默认值,xpages,dojo,Xpages,Dojo,我试图在dijit.Calendar中设置当前日期,但由于某些原因,它没有设置,而且我也没有收到任何错误。我还试图获取所选值以填充字段或会话范围变量,但这也没有发生-只需获取一个dom.byId()为空错误 <div data-dojo-type="dijit/Calendar" id="myCal"> <script type="dojo/method" data-dojo-event="onLoad" data-dojo-args="value">
dom.byId()
为空错误
<div data-dojo-type="dijit/Calendar" id="myCal">
<script type="dojo/method" data-dojo-event="onLoad" data-dojo-args="value">
require(["dojo/dom", "dojo/date/locale"],
function(dom, locale){
dom.byId('myCal').set('value',new Date());});
</script>
<script type="dojo/method" data-dojo-event="onChange"
data-dojo-args="value">
require(["dojo/dom", "dojo/date/locale"],
function(dom, locale){
dom.byId('formatted').innerHTML =
locale.format(value, {formatLength: 'medium',
selector:'date'}); });
</script>
</div>
require([“dojo/dom”,“dojo/date/locale”],
函数(dom、区域设置){
dom.byId('myCal').set('value',new Date());});
require([“dojo/dom”,“dojo/date/locale”],
函数(dom、区域设置){
dom.byId('formatted').innerHTML=
format(值,{formatLength:'medium',
选择器:'date'});});
有人知道我做错了什么吗?我还在notes 8.5.3 dojo 1.6中的一个应用程序中使用日历小部件。因此,它在您的xpage中可能不起作用,但您可以尝试一下。以下是我得出的结论: 首先,不要忘记设置
dojoForm=“true”,
dojoParseOnLoad=“true”,
dojoTheme=“true”。
然后导入小部件所需的资源(我使用了定制的calendar.css):
在日期小部件中显示所选日期:
<xp:text escape="true" id="computedField1"
value="#{javascript: return 'Hallo' + sessionScope.selectedDate;}">
</xp:text>
在我的应用程序中,这个小部件有点大,因为我使用了一个菜单让用户在一个日期选择不同的操作,所以我从我的大菜单中提取了这段代码,并在一个空的Xpage上测试了它。希望有帮助=)看起来一点都不像Xpages的问题;我会帮你取下那个标签。如果我错了,请添加您的问题与Xpages相关的方面的信息日历位于xPage中,我正在尝试设置加载时的值。然后,我想选择一个日期,并让它填充我的xPage上的一个字段。在上面的代码中,我可以用日期填充HTML元素,但当我尝试对字段执行相同操作时,它失败了;对不起。您能否再展示一些代码示例,说明如何尝试与Xpages控件和/或Notes字段通信?也许我们会知道你想要达到什么目的,失败在哪里让我来弄清楚你需要一个日历,你可以选择一个日期,当前日期作为默认值,你想用它设置会话范围战争吗?为什么不使用一个简单的日期输入字段,它有一个现成的dojo日期选择?另外,您使用的Notes版本是什么?这看起来像dojo 1.9,但例如notes 8.5.3附带了dojo 1.6Hi-这正是我试图实现的目标。我使用的是Domino9.01和Dojo1.83。我有一个日历小部件,当点击它时,它将返回日期值,然后显示该日期的日历页面。我不想使用日期输入字段,因为它看起来是naff。稍后我会发布更多我的代码,因为我有一个会议要去……干杯迈克尔-明天早上第一件事就是试试:-)
<xp:panel id="calendarHolder" style="width:200px">
<xp:scriptBlock id="Calendar">
<xp:this.value><![CDATA[XSP.addOnLoad(function(){
dojo.require("dojox.widget.Calendar");
dojo.require("dojo.date","dijit.registry");
dojo.ready(function(){
// create the Calendar:
var selectedDate = null;
var calendar_body = new dojox.widget.Calendar({
value: new Date(),
isDisabledDate:dojo.date.locale.isWeekend,
onValueSelected: function(date){calendarDateClicked(date);
}
}, "calendar_body");
//create Click action
function calendarDateClicked(date){
var d = new Date(date);
var month = '' + (d.getMonth() + 1);
var day = '' + d.getDate();
var year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
var dateString = [year,month,day].join("");
dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = dateString;
XSP.partialRefreshPost("#{id:computedField1}",{});//Post Value to server
}
});
});]]></xp:this.value>
</xp:scriptBlock>
<div id="calendar_body">
<xp:inputText
id="hiddenCalWidgetSelectedDate"
style="display:none;"
value="#{sessionScope.selectedDate}">
<xp:this.defaultValue><![CDATA[#{javascript://
var d = new Date(/*Today*/);
var month = '' + (d.getMonth() + 1);
var day = '' + d.getDate();
var year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year,month,day].join(""); }]]></xp:this.defaultValue>
</xp:inputText>
</div>
</xp:panel>
<xp:text escape="true" id="computedField1"
value="#{javascript: return 'Hallo' + sessionScope.selectedDate;}">
</xp:text>