2013-06-04 74 views
0

我正在使用liferay-ui datepicker。 當我的頁面加載日期選擇器中的當前日期和當前日期的數據加載在頁面上。 我想要做的是讓用戶查看數據,以便當用戶選擇任何其他日期時,所選日期的數據將顯示出來。 我應該怎麼做? 應該刷新整個頁面嗎?怎麼樣? 或者我應該使用ajax?我該怎麼辦?如果要使用ajax,我應該如何傳遞數據?如何刷新從datepicker選擇日期的頁面Liferay

編輯:

我會詳細解釋我的問題。我正在使用liferay:ui:date。我希望用戶從中選擇一個日期。一旦用戶選擇日期,我想將日期傳遞給custom-sql。我在同一個jsp中調用finder函數如下:

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

我想在上面的函數中傳遞用戶選擇的日期。 現在我所做的只是在上面的代碼行中傳遞當前日期。我想傳遞用戶選擇的日期。

+0

即使在編輯之後,我不確定你的問題是什麼。是關於將日期傳遞給控制器​​並返回給jsp(ajax或不),還是使用資源階段?你以前能夠將日期傳遞給控制器​​嗎? – yannicuLar

+0

@yannicuLar: 我爲此使用了Ajax。 我將用戶選擇的數據傳遞給serveResource,現在我正在檢索jsp中的json對象。儘管如此,我還是有其他問題。現在我使用的顯示數據: 成功:函數(JSONArray),其中{ \t \t \t \t \t \t \t \t警報(JSONArray),其中, \t \t \t \t \t \t \t \t $( '#displayDate')的HTML(jsonArray [0])。 \t \t \t} 有沒有辦法可以存儲json對象並在liferay搜索容器中使用它? –

回答

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);  
+0

是的,我使用liferay-ui:輸入日期。 因此,當用戶選擇一個日期時,我應該使用ajax將其轉移到控制器,然後執行所需的操作? –

+0

我已經在EDIT –

+0

的問題中解釋了我的問題。讓我們首先說您不需要使用serveResource(和AJAX),但是您可以創建一個動作url,它將再次加載相同的頁面,但是不同的參數。使用GenericPortlet,我嘗試避免ajax和serveResource調用 – yannicuLar

0

我想你應該AJAX去。當您選擇日期使用日期選擇器 並在您的serveResource方法中獲得該日期時,請撥打阿賈克斯電話。根據您選擇的日期提取數據並將所需數據傳遞到表示層即JSON

收集數據並顯示它。這就是它:)

讓我知道如果你有問題!

+0

感謝您的答覆。它是一樣的: http://stackoverflow.com/questions/16811854/display-data-on-jsp-based-on-selected-date-from-liferay-datepicker/16829664?noredirect=1#16829664 –

+0

是在資源url中傳遞參數以區別於rest ajax調用,並在serveResource方法中檢查該參數,並且需要滿 –

相關問題