我之前已经为其他项目做过这个,但这次似乎无法让这个工作。
我有一个重复控件,它返回几个unids的列表。重复中的面板绑定到NotesDocument,该文档根据每个unid打开文档。面板上的ignoreRequestParams = true。很简单。除外,它不起作用。
<xp:panel id="panelDetail">
<xp:this.data>
<xp:dominoDocument var="detdoc"
formName="QuoteDetail" documentId="#{javascript:detdata}"
ignoreRequestParams="true" action="openDocument">
</xp:dominoDocument>
</xp:this.data>
其中detdata是来自父重复控件(unid)的var。
面板中的一个链接检查我的文档(detdoc)是否可编辑,但是,这是我得到的错误。
Error calling method 'isEditable()' on an object of type 'lotus.domino.local.Document [Static Java Interface Wrapper, lotus.domino.local.Document: lotus.domino.Document]'
是什么给了什么?
我在面板中有几个绑定到detdoc中的字段的编辑框,它们似乎正确显示 - 每行显示不同的值,但我使用detdoc.getItemValueString(“fieldname”)的计算字段都显示值从第一份文件。 ???
我已经检查了属性并将其与之前的工作项目进行了比较,但是我无法在这里查看我的问题。有人能指出我正确的方向吗?
答案 0 :(得分:0)
您的isEditable()
检查似乎是针对后端文档(lotus.domino.local.Document)而不是dominoDocument数据源执行的。请检查相关组件。
如果您的日志记录无法识别,请使用OpenNTF的XPage OpenLog Logger,它将错误和相关组件输出到OpenLog数据库(从OpenNTF上的单独OpenLog项目下载OpenLog数据库本身 - XPage OpenLog Logger只是用于执行日志记录的XPages扩展库。
答案 1 :(得分:0)
我找到了解决方案。我的重复控件从视图中的文档中提取unid。使用的视图取决于重复上方的组合框,允许用户过滤他们想要查看的条目。在我的组合框选择公式中,我使用了
var detdoc = ventry.getDocument(); var seat = detdoc.getItemValueString(&#34; SeatVars&#34;); 等
显然,这种用法会延续到它下面的面板中,所以它无法解决这个detdoc任务和&#34; detdoc&#34;我用于面板dominoDocument数据源。我改变了组合框以使用&#34; doc&#34;而不是&#34; detdoc&#34;现在我的数据源&#34; detdoc&#34;正确找到了。
猜猜我的公式需要稍微具体一点。
感谢您的回复 - 您促使我找到答案,有时候,我需要的只是......只是一组不同的眼睛和不同的观点。再次感谢你。
编辑: 对不起,取得了进展,但仍未完全解决。 在我的面板中,detdoc定义为数据源,我有另一个重复控件,显示动态绑定字段。这意味着必须使用&#34;在页面创建时创建控件来定义重复&#34;检查。但是,看起来这个重复尝试在包含面板绑定到detdoc之前呈现,因为我的重复控制绑定公式报告&#34; detdoc not found&#34;。如果在渲染时没有识别detdoc,我如何在重复中使用动态字段?