如何在 JSF 中单击特定按钮时使组件只读?
How to make a component readonly on a specific button click in JSF?
<h:panelGroup rendered="#{spkrCatEvt.createPanel}">
<label>Event Name</label>
<h:selectOneMenu style="width: 250px" class="form-control" value="#{spkrCatEvt.selected.evtId}" id="speaker_eve">
<f:selectItems value="#{spkrCatEvt.eventlist}" var="sl" itemLabel="#{sl.value}" itemValue="#{sl.id}"/>
</h:selectOneMenu>
<label>Speaker Name</label>
<h:selectOneMenu style="width: 250px" class="form-control" value="#{spkrCatEvt.selected.spkrId}" id="speaker">
<f:selectItems value="#{spkrCatEvt.speakerlist}" var="sl" itemLabel="#{sl.value}" itemValue="#{sl.id}"/>
</h:selectOneMenu>
</h:panelGroup>
以上是用我的 JSF 表单编写的部分代码,当我单击“ADD”按钮时显示。在相同的表格中,我还为 table 编写了代码来显示如下数据:
<table id="example" class="table table-bordered table-striped">
<thead>
<tr>
<th>Speaker Name</th>
<th>Event Name</th>
</tr>
</thead>
<tbody>
<ui:repeat id="dataTbl" value="#{spkrCatEvt.items}" var="item">
<tr>
<td><h:outputText value="#{item.spkrName}"/></td>
<td><h:outputText value="#{item.evtName}"/></td>
<td>
<h:commandLink action="#{spkrCatEvt.prepareView()}" id="view" title="View"><i class="fa fa-th-large"/></h:commandLink>
<h:outputText value=" "/>
<h:commandLink action="#{spkrCatEvt.prepareEdit()}" id="edit" title="Edit"><i class="fa fa-edit"></i></h:commandLink>
<h:outputText value=" "/>
<h:commandLink action="#{spkrCatEvt.activeEdit()}" id="activate" title="Activate" rendered="#{!item.active}"><i class="fa fa-check"></i></h:commandLink>
<h:commandLink action="#{spkrCatEvt.activeEdit()}" id="deactivate" title="DeActivate" rendered="#{item.active}"><i class="fa fa-times"></i></h:commandLink>
</td>
</tr>
</ui:repeat>
</tbody>
</table>
我想在单击 table 中的更新按钮时将显示 'event name' 的 <h:selectOneNenu>
设置为只读。
我尝试了同样的方法,给元素赋予了 rendered 属性,但没有用。
作为 JSF 的初学者,我没有得到解决方案。
我将不得不寻求帮助。
在 h:selectOneMenu
上使用 disabled
而不是 rendered
; rendered
用于一起省略它。将它绑定到 bean 上的布尔值,单击按钮时将其设置为 true。所以像
<h:selectOneMenu ... disabled="#{spkrCatEvt.oneMenuDisabled}"/>
豆子上记得getters/setters
如果您不喜欢新的灰色外观,您可以使用例如
select:disabled{
color: black;
}
如果它是一个 primefaces selectOneMenu 那会是
.ui-selectonemenu.ui-state-disabled{
opacity: 1; // Between 0.0 and 1, 0.35 being default
}
<h:panelGroup rendered="#{spkrCatEvt.createPanel}">
<label>Event Name</label>
<h:selectOneMenu style="width: 250px" class="form-control" value="#{spkrCatEvt.selected.evtId}" id="speaker_eve">
<f:selectItems value="#{spkrCatEvt.eventlist}" var="sl" itemLabel="#{sl.value}" itemValue="#{sl.id}"/>
</h:selectOneMenu>
<label>Speaker Name</label>
<h:selectOneMenu style="width: 250px" class="form-control" value="#{spkrCatEvt.selected.spkrId}" id="speaker">
<f:selectItems value="#{spkrCatEvt.speakerlist}" var="sl" itemLabel="#{sl.value}" itemValue="#{sl.id}"/>
</h:selectOneMenu>
</h:panelGroup>
以上是用我的 JSF 表单编写的部分代码,当我单击“ADD”按钮时显示。在相同的表格中,我还为 table 编写了代码来显示如下数据:
<table id="example" class="table table-bordered table-striped">
<thead>
<tr>
<th>Speaker Name</th>
<th>Event Name</th>
</tr>
</thead>
<tbody>
<ui:repeat id="dataTbl" value="#{spkrCatEvt.items}" var="item">
<tr>
<td><h:outputText value="#{item.spkrName}"/></td>
<td><h:outputText value="#{item.evtName}"/></td>
<td>
<h:commandLink action="#{spkrCatEvt.prepareView()}" id="view" title="View"><i class="fa fa-th-large"/></h:commandLink>
<h:outputText value=" "/>
<h:commandLink action="#{spkrCatEvt.prepareEdit()}" id="edit" title="Edit"><i class="fa fa-edit"></i></h:commandLink>
<h:outputText value=" "/>
<h:commandLink action="#{spkrCatEvt.activeEdit()}" id="activate" title="Activate" rendered="#{!item.active}"><i class="fa fa-check"></i></h:commandLink>
<h:commandLink action="#{spkrCatEvt.activeEdit()}" id="deactivate" title="DeActivate" rendered="#{item.active}"><i class="fa fa-times"></i></h:commandLink>
</td>
</tr>
</ui:repeat>
</tbody>
</table>
我想在单击 table 中的更新按钮时将显示 'event name' 的 <h:selectOneNenu>
设置为只读。
我尝试了同样的方法,给元素赋予了 rendered 属性,但没有用。
作为 JSF 的初学者,我没有得到解决方案。
我将不得不寻求帮助。
在 h:selectOneMenu
上使用 disabled
而不是 rendered
; rendered
用于一起省略它。将它绑定到 bean 上的布尔值,单击按钮时将其设置为 true。所以像
<h:selectOneMenu ... disabled="#{spkrCatEvt.oneMenuDisabled}"/>
豆子上记得getters/setters
如果您不喜欢新的灰色外观,您可以使用例如
select:disabled{
color: black;
}
如果它是一个 primefaces selectOneMenu 那会是
.ui-selectonemenu.ui-state-disabled{
opacity: 1; // Between 0.0 and 1, 0.35 being default
}