系统信息:
测试服务器:
Windows 7上的多米诺骨牌9
扩展库版本900v00_02.20130515-2200
开发服务器:
Windows服务器2008上的多米诺骨牌8.5.3 FP3
扩展库版本853.20121022-1354
发展客户
Notes 8.5.3 Windows 7上的FP3
扩展库版本853.20121022-1354
浏览器使用
IE8 *,IE9
火狐
铬
* =项目定义的浏览器
问题:
开发了一个门户应用程序,以便最终用户从选择(从组合框)中选择所需的数据库并显示该数据库。此门户中显示的所有数据库都使用相同的设计模板,但配置非常高。为了保持纤薄的设计,并防止需要无数隐藏的视图面板,使用了扩展库动态视图面板控件。
我目前遇到的部分问题是在第一列或第二列中使用\字符以创建子类别。目前还不知道这个角色使用了多少次,也不知道有多少个子类别。使用普通的Notes客户端,这不是问题,因为视图将始终正确显示。使用xe:dynamicViewPanel或xp:viewPanel控件并非如此。它们不是缩进新的子类别,而是直接显示在彼此之下。但是,关闭主类别将关闭子类别。我还测试过,看看这是一个在新的notes / domino 9环境中得到纠正的bug,但是,它仍然存在。
问题:
有没有人知道如何修复显示这些类别/子类别的问题,或者可能是另一种显示信息的方式,使其看起来像背景视图?如果可以的话,我宁愿留在动态视图面板上。
提前谢谢你
格雷格
答案 0 :(得分:3)
不为网络构建分类视图。我将使用视图导航器创建一个bean,并用列表/树组合替换视图。有some UI inspirations可以查看。在您的bean中,您可以根据自己的喜好处理视图。
偏离我的脑袋(可能无法编译):
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);
}
}
您将使用getKeys()填充您的dojo树 - 您需要自己处理子类别中的拆分。诀窍是将树中的类别显示为拆分值,但返回单个字符串(因为它实际存储在文档中)然后可以将数据表或重复控件绑定到getEntries(...)并将列绑定到个人参赛作品