我想更改视图中单击行的后端文档中字段的值,但也更改前一行的值。这样做的最好方法是什么?
问问题
885 次
1 回答
1
有趣的话题。我只是试了一下,找到了这个解决方案:
我假设您正在使用视图面板(不过,使用类似重复的东西可能会使事情变得更容易一些)。在 viewPanel 的“所有属性”下查找名为“data > var”的属性(注意:还有一个“data > data > var”,但这是另一回事!)。您可以在此处输入一个唯一名称以访问您的视图条目:
<xp:viewPanel rows="30" id="viewPanel1" var="entry">
<xp:this.data>
<xp:dominoView var="view1" viewName="myView"></xp:dominoView>
</xp:this.data>
我添加了一个额外的列来计算其数据属性,使用当前条目的父视图导航器对象计算前一个条目,并确保当前和前一个条目都是有效的视图条目对象。然后,结果我返回上一个条目的 NoteID 值以确保我确实访问了它。
if(!entry.isCategory()){
var vnav:NotesViewNavigator = entry.getParent();
vnav.gotoEntry(entry.getDocument())
var pentry = vnav.getPrev();
if(pentry!=null){
pentry.getNoteID();
}
}
为了能够正确检查这一点,我又添加了一列来显示当前条目的 NoteID:
entry.getNoteID();
结果如下所示:
因此,一旦您拥有前一个对象,您也可以访问其文档对象。
编辑:如何以普通方式获取 viewNavigator 对象:
只需使用父视图对象创建您的 viewNavigator,如
var view = database.getView("myView);
var vnav = view.createViewNav();
另一方面,如果您看到 entry.getParent() 导致 viewEntryCollection ,您不妨尝试以不同的方式访问前一个条目:
var vec = entry.getParent();
if (vec.toString().indexOf("ViewEntryCollection")>0){
var preventry = vec.getPrevEntry(entry);
}
于 2012-07-19T09:50:33.200 回答