从dojo小部件刷新视图面板

时间:2014-02-10 10:21:01

标签: dojo calendar xpages

从@MichaelSaiz获取此代码并略微改变它,并且日历小部件在Domino服务器上使用dojo 1.5.x附带的Calendar.css看起来/效果很好。

但是,我需要在用户点击日期时刷新日历视图,虽然字段正在刷新,但是视图行为异常,我看不清楚原因?

XSP.addOnLoad(函数(){

    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
        }
    });
});

当用户单击日历并且它更新字段(calDate)然后更新viewPanel(dayPanel1)时会触发。

根据calDate字段过滤视图,点击日历集。

当用户点击日历时,我如何才能让视图刷新?似乎基本但它让我疯了!!

格雷姆

1 个答案:

答案 0 :(得分:1)

日期格式不正确(正如@MichaelSaiz推测的那样)。现在排序了。

XSP.addOnLoad(函数(){

    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
        }
    });
});