关于h:dataTable的使用
基本用法
后台处理
可以在table的每一行增加操作用于处理当前行(比如删除当前行),也可以在table外增加操作处理整个table(更新整个table),页面代码如下:
我们可以有多种方式来处理
1】 传统的jsp方式,也是很多初学者首先想到的方式,这种方式本质上和以前的方式没有区别,只是披上了jsf的外衣而已,强烈建议不要使用。并且这样没有办法处理整个table,按以前的方式处理是相当的麻烦。
给每一行的操作增加参数,然后在后台提取该参数
<t:dataTable var="emp" .... >
<h:commandLink id="editLink" action="#{employeeAction.prepareEdit}">
<h:outputText value="#{msg.edit}"/>
<f:param name="id" value="#{emp.id}"/>
</h:commandLink>
FacesContext context = FacesContext.getCurrentInstance();
Map map = context.getExternalContext().getRequestParameterMap();
String employeeID = (String) map.get("id");
2】 使用actionListener,来取得当前行的数据。整个表的处理很简单,直接获取list即可(参加方法3)
<h:commandLink>
<f:actionListener type="net.java.OrderActionListener" />
<h:outputText value="Order" />
</h:commandLink>
public class orderActionListener implements ActionListener {
public void processAction(ActionEvent anEvent) throws AbortProcessingException {
YourBeanClass tmpBean = null;
UIComponent tmpComponent = anEvent.getComponent();
while (null != tmpComponent && !(tmpComponent instanceof UIData)) {
tmpComponent = tmpComponent.getParent();
}
if (tmpComponent != null && (tmpComponent instanceof UIData)) {
Object tmpRowData = ((UIData) tmpComponent).getRowData();
if (tmpRowData instanceof YourBeanClass) {
tmpBean = (YourBeanClass) tmpRowData;
//TODO Implementation of your method
}
}
3】 通过绑定tale,这样就可以在后台直接通过table来获取当前行了,而不像方法2那样通过事件来获得table
<h:dataTable binding="#{testSelectItems.table}" id="hotels" value="#{testSelectItems.list}" var="hot">
<h:column id="c1">
<f:facet name="header" id="f1">label</f:facet>
<h:inputText id="bbb" value="#{hot.label}" required="true"/>
</h:column>
<h:column id="c2">
<f:facet name="header" id="f2">value</f:facet>
<h:inputText id="aaa" value="#{hot.value}" required="true"/>
</h:column>
<h:column id="c3">
<f:facet name="header" id="f3">link</f:facet>
<!- 处理当前行
<h:commandLink id="ccc" action="#{testSelectItems.actionTest1}" value="#{hot.value}">
xxx#{hot.label}
</h:commandLink>
</h:column>
</h:dataTable>
<!- 处理全部行
<h:commandButton action="#{testSelectItems.actionTest}"/>
</h:form>
public class TestSelectItems {
private UIData table=new UIData();
private List list;
public List getList(){
System.out.println("---TestSelectItems-getList----1---");
if(list==null){
System.out.println("--TestSelectItems-getList-----2---");
list=new ArrayList();
SelectItem it=new SelectItem();
it.setLabel("lable1");
it.setValue("1");
list.add(it);
it=new SelectItem();
it.setLabel("lable2");
it.setValue("2");
list.add(it);
}
return list;
}
//处理全部行
public void actionTest(){
System.out.println("----list.size():"+list.size());
System.out.println("--actionTest--");
}
//处理单行
public void actionTest1(){
SelectItem dd=(SelectItem)table.getRowData();
System.out.println("--actionTest1--:"+dd.getLabel());
}
public UIData getTable() {
return table;
}
public void setTable(UIData table) {
this.table = table;
}
增加多选操作
参见http://yourenyouyu2008.iteye.com/blog/201138
实现原理
分享到:
相关推荐
如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能很强大,控件很多,但有一点不好就是不支持IE6,特别是下拉列表,p:dialog等,其它的分页p:datatable实际使用起来总有不如意的地方。richfaces还...
Java Server Faces API 组件标签 API Reference 速查手册 ... javax.faces.Command javax.faces.Button javax.faces.Link javax.faces.Data javax.faces.Table ...h:dataTable h:form h:graphicImage
<h:dataTable value="#{loginBean.persons}" var="person" border="5" cellpadding="5" cellspacing="2"> <h:column> <f:facet name="header"> <h:outputText id="headerText1" value="职工号"/> </f:facet>...
maven springBoot mybatisPlus H-ui Admin dataTable一些框架的使用 不用数据库。
如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能很强大,控件很多,但有一点不好就是不支持IE6,特别是下拉列表,p:dialog等,其它的分页p:datatable实际使用起来总有不如意的地方。richfaces还...
js-datatable-具有数据可视化的动态表js-datatable是一个开放源代码的JQuery插件,用于生成具有数据可视化功能的动态HTML表。 该插件最初是为满足学术数据可视化( )的需要而开发的,并与静态页面生成框架一起使用...
CoCreate数据表Vanilla JavaScript中的一个简单的datatable组件。 使用HTML5数据属性和/...NPM $ npm i @cocreate/datatable目录如何贡献关于执照 公告内容该库的所有更新都记录在我们的CHANGELOG和发行版中。 您也可以
4、把浮点数格式化为{H:min:s.ms}格式的字符串 double -> {H:min:s.ms} 5、获取浮点数值的有效小数位数 6、对数据行字段取值方法 7、获取数组的异或校验值 8、判断2个数组元素值是否相同 9、克隆DataTable及数据的...
-- 移動查詢結果 --><div class="scrollRightDiv"> <h:graphicImage library="images" name=
Faltava o <h> Pastas com pacote incorretos Path de source mal mapeado 问题 2 :Maven 没有构建 Estava apontando para uma versão de uma dependência que não rolava 问题3: Datatable中没有调用请求...
需求:点击datatable 的一行...1、构建一个模态框:具体使用方法可以在网上找:https://www.w3h5.com/post/74.html 创建模态框(Modal) 开始演示模态框 × 模态框(Modal)标题 在这里添加一些文本
您可以使用以下方法从安装buildingpackage的发行版本: install.packages( " buildingpackage " ) ' = requireNamespace("DT", quietly = TRUE) requireNamespace("lubridate", quietly = TRUE) requireNamespace(...
对于必须使用表格方式呈现的数据,JSF 的 <h:dataTable> 卷标协助您进行动 态表格数据的输出。 o 简单的表格 o 表头, 表尾 o TableModel 类别 自订组件 JSF 让您可以自订组件,每个组件都是可替换的,这使得组件在...
对于必须使用表格方式呈现的数据,JSF 的 <h:dataTable> 卷标协助您进行动态表格数据的输出。 o 简单的表格 o 表头, 表尾 o TableModel 类别 自订组件 JSF 让您可以自订组件,每个组件都是可替换的,这使得...
JSF标签使用 前台与后台交换 单选与多选的选中值问题 下载下来放到myeclipse中部署运行即可
页面样式来自于H-ui框架(datatables版本为1.10.0) 主要修改(databases)配置项为: 1) bProcessing:true 使用ajax源 2) serverSide:true 使用服务端分页 3) createdRow:function(){} 回调函数,用于添加事件或类名 4)...
生成pdf的插件工具,绿色插件,请放心使用,C#使用方法:先引用itextsharp.dll动态链接库,然后using itextsharp.text等空间,即可使用。 引用: using iTextSharp; using iTextSharp.text; using iTextSharp.text....
用法:[h,hbox] = OverlayTable(gcf,dataTable,left,top,width,height,varargin) [h,hbox] = OverlayTable(gcf,dataTable) 注意:表格由注释文本框组成,每个单元格一个桌子。 表格的完整格式,包括字体、颜色、...
夸克斯脸 目标 主要目标是取出一个开箱即用的JSF应用程序( )并在Java EE Server和运行它。 一些附加目标: 看看我们可以通过结合各种针对JSF应用程序的优化技巧来...在使用Incognito Mode完全相同的页面/datatable/c
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...