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