如何从datepicker Liferay中选择日期刷新页面

时间:2013-06-04 09:55:26

标签: datepicker liferay liferay-6 liferay-ide

我正在使用liferay-ui datepicker。 当我的页面加载日期是datepicker中的当前日期时,当前日期的数据将加载到页面上。 我想要做的是允许用户查看数据,以便当用户选择任何其他日期时,显示所选日期的数据。 我该怎么办呢? 我应该刷新整个页面吗?怎么样? 或者我应该使用ajax?我该怎么办?如果要使用ajax我应该如何传递数据?

编辑:

我会详细解释我的问题。我正在使用liferay:ui:date。我希望用户从中选择一个日期。一旦用户选择了日期,我想将日期传递给custom-sql。我在同一个jsp中调用finder函数如下:

 List<Object[]> ObjdisplayAttListName = AttendanceLocalServiceUtil.findAttendance(currentdate);

我想在上面的函数中传递用户选择的日期。 现在我正在做的只是在上面的代码行中传递当前日期。我希望通过用户选择的日期。

2 个答案:

答案 0 :(得分:0)

就个人而言,我更喜欢使用liferay-ui:输入日期。只需确保在控制器类中保留日期或日历对象

    <portlet:actionURL var="setDate" name="setDate" >
        <portlet:param name="jspPage" value="/html/yourPage.jsp" />
    </portlet:actionURL>

<aui:form  action="<%= setDate%>" method="post" enctype="multipart/form-data" >
            <%
            Date date  = (Date)renderRequest.getAttribute("_a_date");// Get your Date from the controller
            Calendar cal = CalendarFactoryUtil.getCalendar();
            cal.setTime(new Date()); // create with current date if this form is presented for the 1st time
            if(Validator.isNotNull(date)){
                cal.setTime(date); // else use the Date you want to display

            } 
            %>



            <liferay-ui:input-date
                        yearRangeStart="1970"
                        yearRangeEnd="2100"  
                        formName="pickedDate"
                        dayParam="dd" 
                        monthParam="mm" 
                        yearParam="yy"
                        dayValue="<%= cal.get(Calendar.DATE) %>"
                        monthValue="<%= cal.get(Calendar.MONTH) %>"
                        yearValue="<%= cal.get(Calendar.YEAR) %>"
                        />
             <aui:button name="setDateBtn" value="Submit that date" type="submit"/>
        </aui:form>

回到控制器..

    public void setDate(ActionRequest actionRequest,
        ActionResponse actionResponse) throws IOException, PortletException {


    UploadPortletRequest queryRequest = PortalUtil.getUploadPortletRequest(actionRequest);

    int dd  =  ParamUtil.getInteger(queryRequest, "dd");
    int mm  =  ParamUtil.getInteger(queryRequest, "mm");
    int yy  =  ParamUtil.getInteger(queryRequest, "yy");
   String date_format       = "yyyy/MM/dd";
   SimpleDateFormat sdf     = new SimpleDateFormat(date_format);
   GregorianCalendar gc     = new GregorianCalendar(yy, mm, dd);
   Date date = gc.getTime(); // Keep this Date and reload the page sending this Date in an actionRequest param

        actionRequest.setAttribute("_a_date", date );    

答案 1 :(得分:0)

我认为你应该选择 AJAX 。使用日期选择器选择日期时拨打ajax电话 并在 serveResource 方法中获取该日期。根据您选择的日期获取数据,并将数据以所需格式即JSON 传递到表示层

收集数据并显示。多数民众赞成:)

如果您有问题请告诉我!!