Dojo dojoType "dijit.form.DateTextBox":它可以显示 "Today" 按钮吗?
Dojo dojoType "dijit.form.DateTextBox": can it display a "Today" button?
有什么办法可以在日历弹出窗口中显示 今天 link 或按钮,
所以用户可以快速访问今天的日期?
我知道默认情况下它是突出显示的,但用户询问是因为它在我们拥有的其他应用程序(不是 Dojo)中可用。
我在 XPages
的 Domino 服务器上使用 Dojo
。
谢谢
你有两种方法,覆盖小部件并设法在自定义模板中添加按钮,或者只是以编程方式添加它,打开如下所示:
如果您阅读了源代码,您会注意到每次单击 datetextbox
时都会调用方法 openDropDown
,其中最后一个弹出窗口被销毁并重新创建一个带有约束的增益,所以你可以使用 oreder 中的函数将按钮绑定到带有 onclick impl 的弹出窗口小部件,
(添加一些 css 使按钮居中)
您可以尝试以下代码段:
require([ "dojo/dom-construct", "dijit/form/DateTextBox", "dijit/form/Button", "dijit/popup", "dojo/dom", "dojo/aspect", "dijit/registry", "dojo/ready"], function(domConstruct, DateTextBox, Button, popup, dom, aspect, registry, ready) {
ready(function() {
new DateTextBox({},dom.byId("datebox")).startup();
var dateBox = registry.byId("datebox");
aspect.after(dateBox, "openDropDown", function(e){
var calButton = new Button({
label:"Today",
onClick: function(e) {
dateBox.set('value', new Date(), true);
popup.hide(dateBox.dropDown);
}
})
console.log(dateBox.dropDown); domConstruct.place(calButton.domNode,this.dropDown.domNode,"after");
})
});
});
#widget_datebox_dropdown
{
text-align:center;
}
<script type="text/javascript">
dojoConfig = {
isDebug: true,
async: true,
parseOnLoad: true
}
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet" />
<body class="claro">
<div id="datebox"></div>
</body>
有什么办法可以在日历弹出窗口中显示 今天 link 或按钮,
所以用户可以快速访问今天的日期?
我知道默认情况下它是突出显示的,但用户询问是因为它在我们拥有的其他应用程序(不是 Dojo)中可用。
我在 XPages
的 Domino 服务器上使用 Dojo
。
谢谢
你有两种方法,覆盖小部件并设法在自定义模板中添加按钮,或者只是以编程方式添加它,打开如下所示:
如果您阅读了源代码,您会注意到每次单击 datetextbox
时都会调用方法 openDropDown
,其中最后一个弹出窗口被销毁并重新创建一个带有约束的增益,所以你可以使用 oreder 中的函数将按钮绑定到带有 onclick impl 的弹出窗口小部件,
(添加一些 css 使按钮居中)
您可以尝试以下代码段:
require([ "dojo/dom-construct", "dijit/form/DateTextBox", "dijit/form/Button", "dijit/popup", "dojo/dom", "dojo/aspect", "dijit/registry", "dojo/ready"], function(domConstruct, DateTextBox, Button, popup, dom, aspect, registry, ready) {
ready(function() {
new DateTextBox({},dom.byId("datebox")).startup();
var dateBox = registry.byId("datebox");
aspect.after(dateBox, "openDropDown", function(e){
var calButton = new Button({
label:"Today",
onClick: function(e) {
dateBox.set('value', new Date(), true);
popup.hide(dateBox.dropDown);
}
})
console.log(dateBox.dropDown); domConstruct.place(calButton.domNode,this.dropDown.domNode,"after");
})
});
});
#widget_datebox_dropdown
{
text-align:center;
}
<script type="text/javascript">
dojoConfig = {
isDebug: true,
async: true,
parseOnLoad: true
}
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.8.3/dijit/themes/claro/claro.css" rel="stylesheet" />
<body class="claro">
<div id="datebox"></div>
</body>