处理xpages扩展对话框的最佳实践?

处理xpages扩展对话框的最佳实践?,xpages,Xpages,我在自定义控件中放置了一个扩展页对话框。该对话框用于搜索成本中心并返回市场、成本中心编号、成本中心名称等信息 按下“选择”按钮,出现对话框。用户搜索并选择其成本中心。按下OK按钮,关闭对话框并更新xPage上的各个字段 有几个问题 当前,CC上的“选择”按钮需要知道并引用CC中对话框控件的名称。在我看来,这不是最好的做法。我的最终用户程序员需要知道CC中该对话框控件的ID。我的“选择”按钮是否有办法“显示”CC,而CC实际上会显示对话框控件 My CC使用自定义属性存储所选成本中心的各种文档字段

我在自定义控件中放置了一个扩展页对话框。该对话框用于搜索成本中心并返回市场、成本中心编号、成本中心名称等信息

按下“选择”按钮,出现对话框。用户搜索并选择其成本中心。按下OK按钮,关闭对话框并更新xPage上的各个字段

有几个问题

  • 当前,CC上的“选择”按钮需要知道并引用CC中对话框控件的名称。在我看来,这不是最好的做法。我的最终用户程序员需要知道CC中该对话框控件的ID。我的“选择”按钮是否有办法“显示”CC,而CC实际上会显示对话框控件

  • My CC使用自定义属性存储所选成本中心的各种文档字段。然后,“确定”按钮使用这些属性设置xPage上的各个字段。这似乎又不是一种最佳做法。如果我想在另一个应用程序中使用该CC,那么我可能需要在OK按钮中编辑代码。有没有更好的方法来处理这个问题?就像我可以在将CC放到xPage上时为它设置属性一样,有没有一种方法可以告诉它当按下OK按钮时我要执行的代码


  • 有一件事我认为是需要通过“确定”按钮更新字段的属性,但这似乎不是很灵活。

    对于需要知道id的问题,我不确定是否有输入错误,但我不明白为什么cc中的“选择”按钮不需要输入对话框的id就可以打开它,这很糟糕?你是说select在cc之外吗?无论采用哪种方式,您是否尝试过在自定义控件上创建属性,以便可以从外部设置某些内容

    <xc:mycustomControl showDialog="false">
    
    
    
    然后,当发生外部事件时,更改showDialog并刷新cc,然后在cc内部,您可以进行前/后页面加载,以确定showDialog为真/假时会发生什么


    对于第二个问题,我觉得应该使用domino文档结构。我要做的是在页面上有一个DominoDoc数据源,而不是拉出每个部分的对话框和ok按钮更新。当通过对话框选择某个内容时,我将更新此源所指向的文档,并将所有字段绑定到它们需要的任何字段。这样,在选择某些内容后,字段将只更新为文档所包含的内容,并且只要domino文档具有相同的字段名,它将更易于重用

    Yes选择按钮位于xPage上的CC之外。我的对话框在CC中。我的最终用户程序员将CC放入Xpage中。我的最终用户程序员不需要担心CC的内部工作,也不需要担心暴露在他面前的内容。对于我曾经使用过的每一个面向对象程序,都是这样的。对于第二个问题,我只是考虑使用DominoDoc作为CC的属性,而不是单个属性。因此CC搜索成本中心并设置DominoDO属性。但我仍然需要对返回的数据执行一些操作。我应该能够允许我的最终用户程序员在放置CC时“插入”该操作。就像他可能会设置一个属性一样。我不确定整个用例,我可能会遗漏一些东西,但如果其他所有东西都在自定义控件中,那么将select也放在其中似乎会更容易,因为这样可以避免这个问题。至于domino文档,我不确定用户除了编辑/保存之外还想对细节做什么,这两个细节都可以通过将字段绑定到文档字段并提供一个简单的保存操作来轻松处理。另外,还有一种方法允许最终用户通过使用将自己的控件添加到自定义控件中。然后,也许你可以为他们提供一种方法,通过向这个方面添加按钮/操作来添加他们自己的功能?不确定这是否适合用例。这是一个对话框。“选择”按钮将显示该对话框。如果选择按钮放在控件上,即使是通过一个面,那么按钮也需要限制在CC所占据的区域内。大多数情况下,您都希望按钮出现。