xPages - 在轨道上添加一个字段

时间:2012-09-24 00:00:50

标签: xpages

我想在现有的xPage中添加一个字段,并且需要运行几个xPage基础来检查它们的有效性。

我做了以下事情:

  • 为了确保我的dev和prod网站的工作,计算文档绑定的格式(因为数据源位于diff db中)。
  • 我的新字段被称为'NewField',我使用了简单的数据绑定,选择了document1(与我文档中的其余字段相同),并输入了新的字段名称(无法从下拉菜单中选择)在计算文件时)。
  • 我还在实际的笔记文档上创建了字段,但我不认为我这样做了?此外,它是在计算的子表单上,所以不确定这是否相关?这是现有备注表单的xpage版本 - 客户端和Web访问均适用于该应用程序。
  • 我认为它会创建“Bind To”中指定的字段(如果它已丢失),但即使在注释表单中,它仍然不会存储该值。

出了什么问题:

  • 在文档上创建字段,但不填充值。存储在notes文档中的值是一个空字符串。
  • 这里没有什么复杂的,没有做任何时髦的事情,但价值没有映射?
  • 其他字段(在创建初始文档时创建)已正确映射。

有什么建议吗?这是在现有xPage中添加字段时的新手错误吗?

A

根据要求,这里是数据绑定和工作的字段的代码,而不是。


这是我定义 document1 的初始代码。它确实调用代理发布保存,但是此代理对未分配的字段值不执行任何操作。

<xp:this.data>
 <xp:dominoDocument var="document1" action="openDocument">
  <xp:this.databaseName><![CDATA[#{javascript:var sname = ("","test\\testdb.nsf"); 
    return sname;}]]>
  </xp:this.databaseName>
  <xp:this.formName><![CDATA[#{javascript:return "MainForm"}]]>
  </xp:this.formName>
 <xp:this.postSaveDocument>
  <xp:executeScript>
   <xp:this.script><![CDATA[#{javascript:var sname = @Name([CN]",@Subset(@DbName(),1));
      var dbname = "test/testdb.nsf";
      var dbTest:NotesDatabase = session.getDatabase(sname, dbname);
      if (dbTest.isOpen()){
        ag = dbTest.getAgent("UpdateDoc"); 
        noteid = document1.getDocument().getNoteID(); 
        ag.run(noteid); 
          } }]]></xp:this.script>
   </xp:executeScript>
  </xp:this.postSaveDocument></xp:dominoDocument>
</xp:this.data>

然后这里是无效的字段分配代码。

<xp:inputText value="#{document1.NewField}"
  id="inputText25" disableClientSideValidation="true" styleClass="entryboxes">
</xp:inputText>

然后,这是一个正在运行的字段分配的代码。

<xp:inputText value="#{document1.CLRef}"
  id="inputText4" rendered="#{javascript:@IsNewDoc()}" styleClass="entryboxes">
</xp:inputText>

认为这是相当标准的。


更新8/10

所以 - 我已经知道只有当我有条件地隐藏细胞时才会发生这种情况。这有一个基本公式,根据另一个字段的值要求该行可见。显示/无显示功能正在工作(参见下面的代码),但由于我不知道的原因,它没有保存值。

var hw = getComponent("module");
var hwv = hw2.getSubmittedValue();

hwv == "Product1" || hwv == "Product2" || hw2v == "Product3"

如果我创建任何其他未隐藏的字段(并填写字段名称),它会正确映射到文档(我认为应该如此)。好消息是我已经设法用一个新的表单进行复制,所以看起来我想要有条件地隐藏一行,而不是我的表单的问题?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的 - 当某些条件下隐藏单元格时,我仍然遇到字段映射问题。因此,我最终使单元格可见,然后仅在某些情况下强制使用该字段。所以,问题不是答案,而是一种解决方法。