我试图在检票口显示授权矩阵。
到目前为止,我可以提出两种解决方案,但我无法在其中任何一种方面找到优势。
第一个,我现在更喜欢这个: DataTable
我想创建一个包含自定义行和列的DataTable,然后重写newCellItem方法,在每个单元格中放置一个AjaxCheckBox,并从中读取列到行的信息作为值。
问题:我不需要提供商,据我所知,如果没有提供商,我们就无法制作一张桌子。
第二个想法:
的的ListView
使用静态标题行逐行添加它们会非常容易。
问题:我放弃了桌子的所有优势。
是否有任何"最佳做法" Wicket提供或者我应该继续使用DataTable? 如果是这样的话:没有提供者可以创建一个表吗?
因为我用我的方法获得了所有信息
getAllRoles() AND getAllDependencies();
将返回Set。
答案 0 :(得分:1)
通常我们使用Wicket中继器(表)和HTML之间的近似连接(X-Y维度)(HTML有3x4,wicket有DataTable,3列蚂蚁4对象在模型中等),但这不是必需的。
Wicket Repeater可以在线编写数据,简单的一维Repeater从Java代码到html行等(将额外的标签作为对象或普通字符串发出)。
可以在一个序列中从Repeater发出并通过CSS中断/格式化。我在我的检票口生活中做了这么大的1-2倍,非常努力,因为我不是一个好的网络开发者,但可能
当他的列未连接到真实的n属性行对象时,Wicket DataTable可能不是优雅的解决方案。这种DataTable的提供者必须撒谎,而不是模拟真正的问题doimain。
答案 1 :(得分:0)
从wicketstuff项目看看InMethod网格组件:http://www.wicket-library.com/inmethod-grid/data-grid/editable-selection 我认为它走向了正确的方向。
答案 2 :(得分:0)
我认为DataTable
应该是一个很好的基础。编写提供者并不是很难。您甚至可以使用预先烹饪的ListDataProvider
“硬”部分是几乎所有默认Wicket
转发器都是基于行的,即它们使用一些预定义的IColumns
集。只要您不动态更改列,DataTable
应该没问题。
答案 3 :(得分:0)
我的最终解决方案是为行创建一个ListView,为列创建一个ListView。 在我的行ListView中,我有一个ListView for cells,它与“columns”具有相同数量的对象。
编辑:由于它经历了很多更改,我删除了代码段。但是,嵌套的ListViews仍然在做这项工作。
如果你记住.html中的结构应该如何,你可以使用多个ListViews轻松访问它。