1

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

编辑:

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

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

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

4

2 回答 2

0

I think you should go with AJAX. Make ajax call when you select date using date-picker and get that date in your serveResource method. Based on your selected date fetch data and pass that data to your presentation layer in required format i.e JSON.

Collect data and display it. Thats it :)

Let me know if you have problem !!

于 2013-06-05T04:36:18.910 回答
0

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

    <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 );    
于 2013-06-04T11:41:17.663 回答