Как отключить один переключатель на странице JSFX?
-
19-09-2019 - |
Вопрос
У меня есть клиент, который создал приложение Oracle ADF/JSF 1.1.На одной из страниц у них есть таблица с первым столбцом в виде включенных взаимоисключающих переключателей.Мне пришлось улучшить страницу и добавить общую строку с отключенным переключателем.Как я могу отключить его в классе Bean или на странице без использования JavaScript?Я пытался сделать что-то вроде:
<af:tableSelectOne id="slctone" disabled="true"/>
но это отключит все кнопки.Я попытался поместить код, подобный приведенному ниже, но это отключило ссылку на следующую страницу во втором столбце:
TcpiVO t= (TcpiVO) JSFUtils.getManagedBeanValue("row");
if(t.getLabel().contains("TOTALS")){
return false;
}
Вот фрагмент кода:
<f:facet name="selection">
<af:tableSelectOne id="slctone" />
</f:facet>
<af:column sortable="false" headerText="#{tcWizard.partsHeaderLabel}" width="325" >
<af:commandLink text="#{row.label}" action="#{tcWizard.retrieveDrillDownList}" actionListener="#{tcWizard.nextDrillDownElement}"
rendered="#{tcWizard.continueDrill }" id="drlLnk" />
<af:outputText value="#{row.label}" rendered="#{!tcWizard.continueDrill }" />
</af:column>
<af:column sortable="false" headerText="#{msg.SALES}" styleClass="bordersBottomGrey" width="80">
<af:outputText value="#{row.sales}"/>
</af:column>
Решение
Мне пришлось улучшить страницу и добавить общую строку с отключенным переключателем.Как я могу отключить его в классе Bean или на странице без использования JavaScript?
Просто используйте EL в disabled
атрибут:
disabled="#{we are in the last row}"
Это должно вернуться true
когда указанное условие будет выполнено.
В качестве альтернативы вы можете использовать нижний колонтитул внутри компонента таблицы:
<f:facet name="footer">
...
</f:facet>
Это создаст <tfoot>
где вы можете разместить независимую строку, на которую, таким образом, не будут влиять другие строки и наоборот.