View XPages中的动态子类别(动态视图面板控件)
系统信息:View XPages中的动态子类别(动态视图面板控件),view,panel,xpages,View,Panel,Xpages,系统信息: 测试服务器: Windows 7上的Domino9 扩展库版本900v00_02.20130515-2200 开发服务器: windows server 2008上的domino 8.5.3 FP3 扩展库版本853.20121022-1354 开发客户端 注意windows 7上的8.5.3 FP3 扩展库版本853.20121022-1354 使用的浏览器 IE8*,IE9 Firefox 铬
测试服务器:
Windows 7上的Domino9
扩展库版本900v00_02.20130515-2200
开发服务器:
windows server 2008上的domino 8.5.3 FP3
扩展库版本853.20121022-1354
开发客户端
注意windows 7上的8.5.3 FP3
扩展库版本853.20121022-1354
使用的浏览器
IE8*,IE9
Firefox
铬
* = 项目定义浏览器 问题:
开发了一个门户应用程序,以便最终用户从选择(从组合框)中选择所需的数据库并显示该数据库。此门户中显示的所有数据库都使用相同的设计模板,但可高度配置。为了保持苗条的设计,并防止需要无数隐藏的视图面板,使用了扩展库动态视图面板控件。
我目前遇到的部分问题是在第一列或第二列中使用\字符来创建子类别。不知道这个字符被使用了多少次,也不知道可能有多少子类别。对于普通notes客户端,这不是问题,因为视图将始终正确显示。使用xe:dynamicViewPanel或xp:viewPanel控件都不是这样。新子类别不是缩进,而是直接显示在彼此的下方。但是,关闭主类别将关闭子类别。我还测试了这是否是一个在新的notes/Domino9环境中被纠正的错误,但是它仍然存在。
问题:
对于如何解决显示这些类别/子类别的问题,或者以另一种方式显示信息,使其看起来像背景视图,有人有什么想法吗?如果可以的话,我宁愿使用动态视图面板
提前谢谢你
Greg分类视图不是为web构建的。我将用视图导航器创建一个bean,并用列表/树组合替换视图。还有很多要结帐的。在bean中,您可以根据自己的喜好处理视图 在我脑海中(可能没有编译):
公共类SampleClass{
private final Map viewData=new HashMap();
//它不是托管bean,因为在构造函数中
//有一个参数-在ObjectDataSource或datacontext中使用它
公共SampleClass(lotus.domino.ViewNavigator vn){
试一试{
ViewEntry ve=vn.getFirst();
while(ve!=null){
ViewEntry veNext=vn.getNextSibling(ve);
这是。CreateContegoryanDentries(ve);
ve.recycle();
ve=veNext;
}
}捕获(注e){
e、 PrintStacktrace();
}
}
私有void(createCategoryAndEntries(ViewEntry ve){
String cateogry=ve.getColumnValues()[0];//您可能需要更多列
List catMembers=new ArrayList();
int subEntryCount=ve.getChildCount();
//如果大于0,则获取子项,每个子项都创建一个列表条目
//包含包含所有列值的列表
this.viewData.put(类别、catMembers);
}
公共集合getKeys(){
返回此.viewData.keySet();
}
公共列表getEntries(字符串类别){
返回此.viewData.get(类别);
}
}
您可以使用getKeys()填充dojo树—您需要自己处理子类别的拆分。诀窍是将树中的类别显示为拆分值,但要返回单个字符串(因为它实际存储在文档中),datatable或repeatcontrol就可以绑定到getEntries(…)在新版本中,在注释类别中使用反斜杠的良好注释标准很麻烦。例如,复合视图(如邮件模板中的视图)无法正确显示子类别,也无法在XPages中显示标准视图控件。如果客户可以接受,我倾向于将\替换为/或>。我知道,这会产生不同的结果,但有助于快速查找文档。您是否碰巧有这样一个bean的示例,只是为了让我从正确的方向开始仅用于方向的粗略裁剪,添加在上面太棒了!!非常感谢您的帮助!我一直在研究您编写的代码,我有几个问题。首先,您使用的是哪个ViewNavigator类?我假设它是lotus.domino.local.ViewNavigator类,但我想确定一下。其次,我找不到OpportunityD的类etails或NSFUtil,是否有特定的jar文件需要手动添加到构建路径?(Notes/Domino8.5.3)OpportunityDetails是我的业务逻辑中的一个类,与您无关;-)。Nsf实用程序。
public class SampleClass {
private final Map<String,List<List<String>>> viewData = new HashMap<String,List<List<String>>>();
// it isn't a MANAGED bean since in the constructor
// there's a parameter - use it in a ObjectDataSource or a datacontext
public SampleClass (lotus.domino.ViewNavigator vn) {
try {
ViewEntry ve = vn.getFirst();
while (ve != null) {
ViewEntry veNext = vn.getNextSibling(ve);
this.createCategoryAndEntries(ve);
ve.recycle();
ve = veNext;
}
} catch (NotesException e) {
e.PrintStacktrace();
}
}
private void(createCategoryAndEntries(ViewEntry ve) {
String cateogry = ve.getColumnValues()[0]; // You might need more columns
List<List<String>> catMembers = new ArrayList<List<String>>();
int subEntryCount = ve.getChildCount();
// If that's bigger than 0 get the children, each makes a list entry
// containing a list with all the column values
this.viewData.put(category,catMembers);
}
public Collection<String> getKeys() {
return this.viewData.keySet();
}
public List<List<String>> getEntries(String category) {
return this.viewData.get(category);
}
}