从dojo小部件刷新视图面板

从dojo小部件刷新视图面板,dojo,calendar,xpages,Dojo,Calendar,Xpages,从@MichaelSaiz获得了这段代码,并对其进行了轻微修改,日历小部件与Domino服务器上dojo 1.5.x附带的calendar.css配合使用时看起来/工作得非常好 但是,当用户单击日期时,我需要刷新日历视图,虽然字段刷新正常,但视图的行为异常,我不明白为什么 XSP.addOnLoad(函数(){ dojo.require(“dojox.widget.Calendar”); require(“dojo.date”、“dijit.registry”); require(“dojo.d

从@MichaelSaiz获得了这段代码,并对其进行了轻微修改,日历小部件与Domino服务器上dojo 1.5.x附带的calendar.css配合使用时看起来/工作得非常好

但是,当用户单击日期时,我需要刷新日历视图,虽然字段刷新正常,但视图的行为异常,我不明白为什么

XSP.addOnLoad(函数(){

dojo.require(“dojox.widget.Calendar”);
require(“dojo.date”、“dijit.registry”);
require(“dojo.date.locale”);
dojo.require(“dijit.Calendar”);
就绪(函数(){
//创建日历:
var selectedDate=null;
var calendar\u body=new dojox.widget.calendar({
值:新日期(),
onValueSelected:函数(日期){calendarDateClicked(日期);
}
}“日历机构”);
//创建单击操作
函数calendarDateClicked(日期){
var d=新日期(日期);
变量月份=“”+(d.getMonth()+1);
var day=''+d.getDate();
var year=d.getFullYear();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
var dateString=[日、月、年].join(“/”);
var y=dojo.date.locale.format(d,{datePattern:“dd/MM/yyyy”,选择器:'date'});
//dojo.byId('#{id:hiddenCalWidgetSelectedDate}')。value=dateString
byId('#{id:hiddenCalWidgetSelectedDate}')。value=y;
byId('#{id:calDate}')。value=y;
//byId('#{id:calDate}')。value=dateString;
XSP.partialRefreshGet(“#{id:dayPanel1},{});//将值发布到服务器
}
});
});
当用户单击日历并更新字段(calDate),然后更新viewPanel(dayPanel1)时,将触发此操作

该视图根据calDate字段进行过滤,单击日历设置该字段

当用户点击日历时,我如何刷新视图?看起来很基本,但我快发疯了


格雷姆

日期格式不正确(正如@MichaelSaiz猜测的那样)。现在把它整理好了

XSP.addOnLoad(函数(){

dojo.require(“dojox.widget.Calendar”);
require(“dojo.date”、“dijit.registry”);
require(“dojo.date.locale”);
dojo.require(“dijit.Calendar”);
就绪(函数(){
//创建日历:
var selectedDate=null;
var calendar\u body=new dojox.widget.calendar({
值:新日期(),
onValueSelected:函数(日期){calendarDateClicked(日期);
}
}“日历机构”);
//以正确的格式设置月份
功能设置月(月){
开关(月)
{
案例1:
月份=“一月”;
打破
案例2:
月份=“二月”;
打破
}
返回月份;
}
//创建单击操作
函数calendarDateClicked(日期){
var d=新日期(日期);
变量月=(d.getMonth()+1);
月=设定月(月);
var day=''+d.getDate()+“,”;
var year=d.getFullYear();
//如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
var dateString=[月、日、年].join(“”);
//var y=dojo.date.locale.format(d,{datePattern:“dd/MM/yyyy”,选择器:'date'});
dojo.byId('#{id:hiddenCalWidgetSelectedDate}')。value=dateString
//byId('#{id:hiddenCalWidgetSelectedDate}')。value=y;
//byId('#{id:calDate}')。value=y;
byId('#{id:calDate}')。value=dateString;
XSP.partialRefreshPost(“#{id:mainPanel}”,{})//将值发布到服务器
}
});
});

视图似乎找不到过滤器的入口。Maby double check the Filter value.Hi@MichaelSaiz,我应该说我的测试之一是在视图上方添加日期/时间字段,然后使用该字段而不是日历更改日期。使用该方法工作正常-仍然设置sessionScope变量,然后在viewPanel上进行部分刷新。奇怪,更新了密码…有什么想法吗?
    dojo.require("dojox.widget.Calendar");
    dojo.require("dojo.date","dijit.registry"); 
    dojo.require("dojo.date.locale");
    dojo.require("dijit.Calendar");
    dojo.ready(function(){      
        // create the Calendar:
        var selectedDate = null;

        var calendar_body = new dojox.widget.Calendar({
                value: new Date(),

                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 = [day,month,year].join("/");

            var y = dojo.date.locale.format(d, {datePattern:"dd/MM/yyyy", selector: 'date'});


            //dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = dateString
            dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = y;

            dojo.byId('#{id:calDate}').value = y;
            //dojo.byId('#{id:calDate}').value = dateString;
            XSP.partialRefreshGet("#{id:dayPanel1}",{});//Post Value to server
        }
    });
});
    dojo.require("dojox.widget.Calendar");
    dojo.require("dojo.date","dijit.registry"); 
    dojo.require("dojo.date.locale");
    dojo.require("dijit.Calendar");
    dojo.ready(function(){      
        // create the Calendar:
        var selectedDate = null;

        var calendar_body = new dojox.widget.Calendar({
                value: new Date(),

                onValueSelected: function(date){calendarDateClicked(date);
                }
            }, "calendar_body");



        //Set month in correct format
        function setMonth(month){
            switch(month)
            {
            case 1:
            month = "Jan";
            break;
            case 2:
            month = "Feb";
            break;
            }
            return month;
        }
        //create Click action
        function calendarDateClicked(date){
            var d = new Date(date);

            var month = (d.getMonth() + 1);
            month = setMonth(month);
            var day = '' + d.getDate() + ",";
            var year = d.getFullYear();
            //if (month.length < 2) month = '0' + month;
            if (day.length < 2) day = '0' + day;


            var dateString = [month,day,year].join(" ");

            //var y = dojo.date.locale.format(d, {datePattern:"dd/MM/yyyy", selector: 'date'});


            dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = dateString
            //dojo.byId('#{id:hiddenCalWidgetSelectedDate}').value = y;

            //dojo.byId('#{id:calDate}').value = y;
            dojo.byId('#{id:calDate}').value = dateString;
            XSP.partialRefreshPost("#{id:mainPanel}",{});//Post Value to server
        }
    });
});