【问题标题】:How to disable calendar component in Richfaces 4如何在 Richfaces 4 中禁用日历组件
【发布时间】:2013-06-11 03:40:52
【问题描述】:

是否可以在 Richfaces 4.3.1 中禁用rich:calendar 组件?我有丰富的:日历和丰富的:inputText。要求是用户可以选择这些组件中的任何一个。例如..如果用户在 inputtext 中输入数据,日历组件应该被禁用。我尝试使用“禁用”属性。但它不起作用。但是它适用于 Richfaces 3.3.3。

感谢任何建议。 谢谢!

更新: 我们使用的日历组件应该允许手动输入以及弹出。要求是当用户选择inputtext对应的单选按钮时禁用日历组件。

XHTML 页面:

<h:selectOneRadio name="searchCriteria" layout="pageDirection"
id="searchCriteria" value="#{searchBean.searchvalue}">
<f:selectItem itemLabel="Joining Date:" name="joinDate"
    itemValue="joinDate" />
<f:selectItem itemLabel="Student #:" name="studentNbr"
    itemValue="studentNbr" />
<a4j:ajax immediate="true"
    render="fromTime,toTime,studentNumber,studentName"  
               event="click"></a4j:ajax>
</h:selectOneRadio>
<rich:calendar name="fromTime" id="fromTime" datePattern="MM/dd/yyyy"
enableManualInput="true" value="#{searchBean.fromTime}"
disabled="#{searchBean.checkType('studentNbr')}"
converterMessage="Could not be understood as Date">
<rich:placeholder value="From" />
</rich:calendar>
<rich:calendar name="toTime" id="toTime" datePattern="MM/dd/yyyy"
enableManualInput="true" value="#{searchBean.toTime}"
disabled="#{searchBean.checkType('studentNbr')}">
<rich:placeholder value="To" />
</rich:calendar>
<h:inputText value="#{searchBean.studentNumber}" name="studentNumber"
id="studentNumber" disabled="#{searchBean.checkType('joinDate')}"></h:inputText>
<h:inputText value="#{searchBean.studentName}" name="studentName"
id="studentName" disabled="#{searchBean.checkType('joinDate')}">
<rich:placeholder value="Name" />
</h:inputText>

SearchBean.java

public Boolean checkType(String searchvalue) {
    Boolean tmp = this.searchvalue.equalsIgnoreCase(searchvalue);
    return tmp;
}

【问题讨论】:

  • 我会质疑在这种情况下是否需要禁用该组件。仍然,禁用什么不起作用?您是否正在重新渲染组件以使其被禁用?还有enableManualInput可以让用户在日历创建的输入框中输入日期,你不能用吗?
  • @Makhiel,要求只是日历组件。但是当我选择与 inputtext 对应的单选按钮时,日历组件就会消失。如果我刷新页面,日历组件会在禁用状态下正确显示。至于 enableManualInput,我们将其设置为 true。但是,我们希望禁用手动输入和弹出窗口。

标签: calendar richfaces


【解决方案1】:

某些组件不喜欢成为重新渲染的目标。在输入周围放置一个&lt;a4j:outputPanel id="panel"&gt;,而不是render="fromTime,toTime,studentNumber,studentName"render="panel"

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 2013-04-25
    • 2011-11-17
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多