2015-02-06 5 views
0

у меня возникают проблемы с Liferay-интерфейса: вкладкиLiferay-УИ: вкладки не изменяя активных

Мне нужно установить активную вкладку в зависимости от того, что ссылка была ранее щелкнул. Я получаю эту информацию, хотя Строку

String selectedTab = ParamUtil.getString(request, "valA", "generalSettings"); 

Затем я создаю вкладки:

<liferay-ui:tabs 
names="A,B,C,D,E" 
tabsValues="valA,valB,valC,valD,valE" refresh="false" 
value="<%=selectedTab%>" url="<%=tabURL.toString()%>" param="tab"> 
<liferay-ui:section> 
    <%@ include file="a.jsp"%> 
</liferay-ui:section> 
<liferay-ui:section> 
    <%@ include file="b.jsp"%> 
</liferay-ui:section> 
<liferay-ui:section> 
    <%@ include file="c.jsp"%> 
</liferay-ui:section> 
<liferay-ui:section> 
    <%@ include file="d.jsp"%> 
</liferay-ui:section> 
<liferay-ui:section> 
    <%@ include file="c.jsp"%> 
</liferay-ui:section> 

Проблема заключается в том, что если использовать значение параметра I эта вкладка остается Активизированная все время, хотя когда я нажимаю другие вкладки, я вижу другой импорт.

Любая идея?

ответ

1

Я попробую дать вам несколько советов. Я думаю, у вас есть два опечатка.

  1. Ваш параметр называется tab, не selectedTab (как определено в param атрибута),
  2. ваших допустимых значений закладках (определено в tabsValues атрибута) являются: Валу, valB и т.д .; generalSettings не существует.

Попробуйте эту строку:

String selectedTab = ParamUtil.getString(request, "tab", "valA"); 

Если вы просто хотите вкладка сначала выбрать его должно быть достаточно, чтобы удалить value атрибут <liferay-ui:tabs> вообще. Проверьте tabs implementation - когда значение равно null, он будет считывать параметр tab из самого запроса и выбирать первую вкладку по умолчанию, когда не задано значение.

С refresh установлено значение false, однако вы не должны обновлять страницу, что означает, что selectedTab не будет инициализироваться при каждом нажатии на вкладку. Это потому, что все разделы предварительно отображены на странице, и только Liferay.Portal.Tabs.show - это called, чтобы отобразить нажатую кнопку и скрыть остальные.

+0

спасибо за помощь, были ошибки, потому что я изменил значения в последний момент, чтобы сделать его более простым забыть о некоторых вещах. В следующий раз я буду осторожнее. – migueloop

0

Я нашел ответ, создав RenderURL и связав его с параметром url. Единственная проблема, с которой я сталкиваюсь сейчас, заключается в том, что каждый раз, когда я изменяю имена и tabValues, если они различны, он не показывает содержимое раздела.