Как реализовать liferay-ui: вкладки с помощью Ajax? - PullRequest
1 голос
/ 24 февраля 2012

Я использую liferay-ui: вкладки и всякий раз, когда я нажимаю на любую из вкладок, вся страница обновляется.Я не хотел, чтобы страница обновлялась.Итак, я попытался сделать это, используя тег liferay-ui: section и установив атрибут "refresh" для liferay-ui: tabs в значение false.Но, поступая таким образом, я обнаружил, что когда портлет загружается впервые, содержимое всех вкладок также загружается одновременно, что снижает коэффициент производительности.Вот мой код:

 <liferay-ui:tabs names="<%= tabs %>" refresh="false" param="selectedTab">
    <liferay-ui:section >
        <liferay-util:include page="/html/resourceurlajax/sample_tab_1.jsp" servletContext="<%=this.getServletContext() %>" />
    </liferay-ui:section>

    <liferay-ui:section>
        <liferay-util:include page="/html/resourceurlajax/sample_tab_2.jsp" servletContext="<%=this.getServletContext() %>" />
    </liferay-ui:section>

    <liferay-ui:section>
        <liferay-util:include page="/html/resourceurlajax/sample_tab_3.jsp" servletContext="<%=this.getServletContext() %>" />
    </liferay-ui:section>
</liferay-ui:tabs>   

Я пытался реализовать это с помощью jQuery, сохраняя liferay-ui: tabs в элементе div и затем нажимая элемент div # id , я попытался получить название нажатой вкладки.Но это показывает тип ошибки "jQuery не определен ", тогда как jQuery работает с функцией toggle ().Я обнаружил, что при запуске кода JQuery в консоли FireBug, я получил предупреждение о щелчке вкладки с соответствующим именем вкладки, но в противном случае он показывает ошибку.

Вот код, использующий jQuery.

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 
 <script type="text/javascript">
 $(document).ready(function(){  
      $("#<portlet:namespace/>ajax-tabs-demo.aui-tab").click(function(){
        alert($('a',this).html());
    }); 

});
 /script>

<div id="<portlet:namespace/>ajax-tabs-demo">
<liferay-ui:tabs names="<%= tabs %>" refresh="false" param="selectedTab">

</liferay-ui:tabs>

Есть ли способ реализовать это с помощью ajax (если я нажал имя вкладки или идентификатор табуляции),Так что, когда я нажимаю на вкладку, содержимое только этой вкладки загружается без обновления.Пожалуйста, дайте мне предложения о том, как это сделать. Пожалуйста, помогите мне.Спасибо.

1 Ответ

1 голос
/ 29 февраля 2012

Я новичок в liferay, но недавно я внедрил AJAX в IPC с использованием Liferay.fire и Liferay.on (Client Side IPC).Я успешно достиг функциональности AJAX.Вот некоторые ссылки для этого.Может быть, это поможет вам ...

http://www.liferay.com/community/wiki/-/wiki/Main/portlet+to+portlet+communication

http://www.liferay.com/community/wiki/-/wiki/Main/Inter-portlet+communication

Так что вы можете попробовать реализовать это на вкладке вкладки, как у вас есть вкладка (вмой случай у меня есть кнопка).Надеюсь, это поможет вам решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...