使用ADF列表视图的主从数据

最近,从UI角度来看,ADF Faces 组件不再被认为很酷。 对于显示数据集合, 列表视图今天应该很酷。 这并不意味着我们根本不应该使用af:table 。 在某些情况下(经常是:)),表比列表视图更适合。 但是,列表视图组件看起来非常好,它非常适合现代UI趋势,并且绝对值得在ADF应用程序中广泛使用。

与数据收集有关的最常见用例之一是显示主从数据。 在这篇文章中,我将展示我们可以使用List View对此做些什么。

列表视图组件提供了开箱即用的功能,可以通过使用groupHeaderStamp构面来显示层次结构数据。

假设在应用程序中定义了Departments-Employees层次结构:

屏幕截图2015年12月1日下午2.53.27

如果我们将详细信息集合“雇员”拖到页面上并选择“ ADF列表视图”作为所需组件,该向导将允许我们包括一个包含来自父集合的属性的组标题:

屏幕截图2015年12月1日下午2.56.44

结果,页面上的列表视图将包含具有Department属性的groupHeaderStamp构面:

<af:listView value="#{bindings.Departments.treeModel}" var="item" ...fetchSize="#{bindings.Departments.rangeSize}" id="lv1"><af:listItem id="li1"><af:panelGridLayout id="pgl2"><af:gridRow marginTop="5px" height="auto" marginBottom="5px" id="gr1"><af:gridCell marginStart="5px" width="34%" id="gc1"><af:outputFormatted value="#{item.bindings.EmployeeId.inputValue}"id="of1"/></af:gridCell>...</af:panelGridLayout></af:listItem><f:facet name="groupHeaderStamp"><af:listItem id="li2"><af:outputFormatted value="#{item.bindings.DepartmentName.inputValue}"id="of6"/></af:listItem></f:facet>
</af:listView>

它看起来像这样:

屏幕截图2015-12-01 at 4.12.37 PM

看起来不错,但实际上并不是我所需要的! 我的要求是实现这样的事情:

屏幕截图2015年12月1日下午4.15.09

因此,每个部门都有一个包含两个选项卡的面板来表示:常规部门信息和员工列表。 这个用例可以使用访问树模型节点定义可以轻松实现。 页面def文件中的列表视图树模型如下所示:

<tree IterBinding="DepartmentsIterator" id="Departments"><nodeDefinition DefName="DepartmentsDeafultVO" Name="Departments0"><AttrNames><Item Value="DepartmentId"/><Item Value="DepartmentName"/></AttrNames><Accessors><Item Value="Employees"/></Accessors></nodeDefinition><nodeDefinition DefName="EmployeesDeafultVO" Name="Departments1"><AttrNames><Item Value="EmployeeId"/><Item Value="FirstName"/><Item Value="LastName"/><Item Value="Email"/></AttrNames></nodeDefinition>
</tree>

Departments0节点定义中定义了“ 雇员”访问者。 它使用员工 视图链接访问器来检索每个部门行的详细记录。 详细记录的结构在Departments1节点定义中描述。

我们将像这样使用这种分层树模型:

<af:listView value="#{bindings.Departments.treeModel}" var="item" ...>            <af:listItem id="li1"><af:panelTabbed position="above" id="pt1" childCreation="lazyUncached"><af:showDetailItem id="tab1" text="Department"><af:panelFormLayout id="pfl1" inlineStyle="height:150px;"><af:panelLabelAndMessage label="#{item.bindings.DepartmentId.hints.label}"id="plam1"><af:inputText value="#{item.bindings.DepartmentId.inputValue}"id="ot1"/></af:panelLabelAndMessage>...</af:panelFormLayout></af:showDetailItem><af:showDetailItem id="sdi1" text="Employees"><af:listView value="#{item.Employees}" var="empItem" ...><af:listItem id="li2"><af:panelGridLayout id="pgl2"><af:gridRow  id="gr1"><af:gridCell id="gc1"><af:outputFormatted value="#{empItem.bindings.EmployeeId.inputValue}"id="of1"/></af:gridCell>...</af:panelGridLayout></af:listItem></af:listView></af:showDetailItem></af:panelTabbed></af:listItem>
</af:listView>

因此,每个列表项都包含一个在内部标记的面板,而Employees选项卡则包含一个引用Employees访问器的嵌套 列表视图 (实际上,它可以是任何东西,例如一个表)。

  • 此职位的示例应用程序可在此处获得 。

它需要JDeveloper 12.1.3。

而已!

翻译自: https://www.javacodegeeks.com/2015/12/master-detail-data-adf-list-view.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql memory=off_MySQL内存调优

原文链接: MySQL Memory Allocation -- by Rick James原文日期: Created 2010; Refreshed Oct, 2012, Jan, 2014翻译人员: 铁锚翻译日期: 2014年5月28日MySQL 内存分配—— 高速设置方案假设仅使用MyISAM存储引擎,设置 key_buffer_size为可用内存的20%,(再加上设置 innodb_buff…

Seajs的用法

以前经常听到Seajs&#xff0c;但是没深入了解过&#xff0c;不清楚到底是用做哪个方面&#xff0c;后来调组到M站做开发&#xff0c;发现项目用到了Seajs&#xff0c;便去了解下 SeaJS是一个遵循CMD规范的JavaScript模块加载框架&#xff0c;可以实现JavaScript的模块化开发及…

java 调用私有方法_公开调用私有Java方法?

java 调用私有方法我们是Java开发人员&#xff0c;在Java中已知4种访问修饰符&#xff1a;私有&#xff0c;受保护&#xff0c;公共和包。 好吧&#xff0c;除了私有以外&#xff0c;最后三个可以通过继承&#xff0c;相同的包或实例从类外部调用。 现在&#xff0c;常见的问题…

mysql慢查询开启语句分析_linux下开启mysql慢查询,分析查询语句

mysql> show variables like "%long%"; //查看一下默认为慢查询的时间10秒----------------------------| Variable_name | Value |----------------------------| long_query_time | 10.000000 |----------------------------1 row in set (0.00 sec)mysql> s…

港航环境变化引起的错误解决方法

1.serlvet API缺少&#xff0c;pom.xml中引入坐标&#xff1b; 2.web.xml中出现错误&#xff0c;将所有的filter调到filtermapping上面去&#xff1b; 3.依赖导入完成后项目依然有红叉&#xff0c;右击项目Propreties->myeclipse->Project Facets->java换成1.6就可以了…

flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持

鉴于Flutter高性能渲染和跨平台的优势&#xff0c;闪点清单在移动端APP上&#xff0c;使用了完整的Flutter框架来开发。既然是完整APP&#xff0c;架构搭建完全不受历史Native APP的影响&#xff0c;没有历史包袱的沉淀&#xff0c;设计也能更灵活和健壮。国际化语言的支持&…

将旧版本从Java EE 5减少到7

Java EE 5于2005年首次引入&#xff0c;而Java EE 7于2013年问世。这两个版本之间有7年的差距&#xff0c;从技术角度来说&#xff0c;这就像一个世纪。 许多组织仍然对使用Java EE 5感到困惑&#xff0c;并且有很多正当理由选择不升级。 不过&#xff0c;如果您考虑一些前进的…

struts2知识

一、 MVC Model 1&#xff1a;将所有的程序代码&#xff0c;都写到JSP页面中。 Model 2&#xff1a;JSP&#xff08;流程控制、数据显示&#xff09; JavaBean 改进的Model2&#xff1a;Servlet&#xff08;流程控制&#xff09; Jsp&#xff08;数据显示&#xff09; Ja…

mysql 数据修改时间_怎样修改mysql数据中的具体时间

匿名用户1级2016-12-30 回答应用场景&#xff1a;1、在数据表中&#xff0c;要记录每条数据是什么时候创建的&#xff0c;不需要应用程序去特意记录&#xff0c;而由数据数据库获取当前时间自动记录创建时间&#xff1b;2、在数据库中&#xff0c;要记录每条数据是什么时候修改…

sql插入临时表数据的方法

方法有两种&#xff0c;主要看需求。 方法1&#xff1a;定义好临时表的字段和类型、插入对应的值 create table #Tmp --创建临时表#Tmp (City varchar(50), --Country varchar(50), -- );insert #Tmp select 北京,中国 union select 东京,日本 union select 纽约,美国 se…

mysql冷热备_Mysql的冷备热备(数据备份)

冷备可以是mysql工具 msqldump。mysqldump -u username -p dbname table1 table2 ... -> BackupName.sqldbname 数据库名称table1 table2 是表名称BackupName.sql 备份保存的相对路径的sql文件执行下面命令。mysqldump -u homestead -psecret homestead > /home/vagrant/…

拼图项目:一个不完整的难题

马克雷因霍尔德&#xff08;Mark Reinhold&#xff09;最近提议延迟Java 9&#xff0c;以花更多的时间来完成Jigsaw项目&#xff0c;这是即将发布的版本的主要功能。 虽然这个决定肯定会使Java的厄运论者重回舞台&#xff0c;但我个人感到很放心&#xff0c;并认为这是一个很好…

gulp

1.gulp是什么&#xff1f; gulp是前端开发过程中一种基于流的代码构建工具&#xff0c;是自动化项目的构建利器&#xff1b;她不仅能对网站资源进行优化&#xff0c;而且在开发过程中很多重复的任务能够使用正确的工具自动完成&#xff1b;使用她&#xff0c;不仅可以很愉快的编…

往vxe-table添加渲染器怎么添_赚大了!飘窗上装书桌,加扇折叠窗,等于为家里又多添一间房...

阅读本文前&#xff0c;请您先点击上面蓝色字体&#xff0c;再点关 注这样您就可以继续免费收到文章注&#xff1a;本文转载自网络&#xff0c;如有侵权&#xff0c;请在后台留言联系我们进行删除&#xff0c;谢谢&#xff01; …

Kubernetes资源创建yml语法

前言 在是用kubernetes中&#xff0c;我们对资源的创建大部分都是通过 1kubelet create -f RESOURCE.yaml刚开看的时候不免有一些迷茫&#xff0c;看不懂语法&#xff0c;不知道怎么写&#xff1b;今天本文就介绍一下kubernetes construct语法。 Construct语法其实就是由kubele…

【六大排序详解】中篇 :选择排序 与 堆排序

选择排序 与 堆排序 选择排序 选择排序 与 堆排序1 选择排序1.1 选择排序原理1.2 排序步骤1.3 代码实现 2 堆排序2.1 堆排序原理2.1.1 大堆与小堆2.1.2 向上调整算法2.1.3 向下调整算法 2.2 排序步骤2.3 代码实现 3 时间复杂度分析 Thanks♪(&#xff65;ω&#xff65;)&#…

java中contains的用法_java容器中所有接口和类的用法

我这里讲一下如何下载java的api文档还有就是容器和容器之间进行的操作每一个地方称之为一个节点&#xff0c;每一个节点包含了3部分(上一个节点&#xff0c;下一个节点&#xff0c;以及我们自己的数据部分)需要多个线程共享的时候通过键对象来找值对象1 java中的length属性是针…

lcs文本相似度_具有LCS方法的通用文本比较工具

lcs文本相似度常见的问题是检测并显示两个文本的差异&#xff08;尤其是几百行或几千行&#xff09;。 使用纯java.lang.String类方法可能是一种解决方案&#xff0c;但是对于此类操作最重要的问题是&#xff0c;“性能”将不能令人满意。 我们需要一种有效的解决方案&#xff…

MySQL--开发技巧(一)

Inner Join: Left Outer Join: Right Outer Join: Full Join: Cross Join&#xff1a; SELECT t1.attrs ,t2.attrs FROM t1 CROSS JOIN t2 使用Join更新表&#xff1a; UPDATE table1 SET attr2 WHERE attr1 IN (SELECT table2.attr1 FROM table1 INNER JOIN table2 ON tab…

查看mysql 中建立的表空间_mysql 表空间及索引的查看

1.查看索引(1)单位是GBSELECT CONCAT(ROUND(SUM(index_length)/(1024*1024*1024), 2), GB) AS Total Index Size FROM information_schema.TABLES WHERE table_schema LIKE database;------------------| Total Index Size |------------------| 1.70 GB |------------------(…