如何在JSF页面中实现动态调整dataTable的行数等于用户输入/选择的值?
上下文是这样的。有一个输入文本组件nummofcars和一个名为CarInfoList的数据表用于输入汽车信息。CarInfoList的行数取决于NumOfCars的值。例如,如果用户在NumOfCars中输入5,我们希望CarInfoList的行号立即调整为5。
有人知道如何用JSF页面实现这个吗?
如果您想要在用户输入5后显示最多5辆车的列表,只需将inputText字段绑定到支持bean,并为简单起见添加一个绑定到操作方法的按钮。在此操作方法中,创建主列表的子列表。然后你的视图应该绑定到这个子列表。
基本上是这样的:
@ManagedBean
@ViewScoped
public class SomeBacking {
private int numberOfCars;
private List<Car> allCars;
private List<Car> displayedCars;
@PostConstruct
public void init() {
allCards = ... // get from some service
displayedCars = allCars;
}
public void adjustDisplayedCars() {
displayedCars = allCars.subList(0, numberOfCars);
}
// Getters/setters
}
(不要忘记在你的inputText组件中添加一个范围验证器)
如果你的意思是不按任何按钮,你可以用AJAX做到这一点。如果您使用的是JSF 2.0, AJAX是内置的,否则您需要一个外部组件库,如RichFaces。
我建议使用primefaces组件或jquery datatable插件
http://www.datatables.net/release-datatables/examples/basic_init/zero_config.html也primefaces数据表组件有很好的特性和ajax兼容性…
点击这里查看