【问题标题】:How to filter REST control based on dojo grid selection?如何根据道场网格选择过滤 REST 控件?
【发布时间】:2016-02-16 19:16:09
【问题描述】:

在 Xpage 上,我有两个 REST 控件,它们填充两个增强的 dojo 数据网格。一个是公司,另一个是我选择的公司的联系人。我可以选择一家公司并在 xpage 的一个字段中显示该文档的 UNID。我很难根据该 UNID 过滤联系人网格。最好的方法是什么?以下是我尝试过的

使用 (CSJS) 使用所选文档 UNID 填充 ParentID 字段:

var grid = arguments[0].grid;
var index = arguments[0].rowIndex;
var item = grid.getItem(index).attributes;
XSP.getElementById("#{id:ParentID}").innerHTML = item.companyLink;
XSP.partialRefreshGet("#{id:contactListPanel}")

从父 ID 中检索 UNID 并使用 (SSJS) 在联系人 REST 控件的 keys 参数中使用:

getComponent("ParentID").getValue()

它看起来像联系网格在选择了公司Doc时刷新,但无论选择哪家公司,所有公司的所有联系人都出现在联系网格中。

【问题讨论】:

    标签: dojo xpages


    【解决方案1】:

    很可能,ParentID 字段没有提交到服务器,也不能用作 REST 服务的参数。

    将公司的 UNID 作为参数转移到 partialRefreshGet() 中

    XSP.partialRefreshGet("#{id:contactListPanel}", 
                          {params: {'unidCompany': item.companyLink}})
    

    在服务器端读取参数

    param.unidCompany
    

    并将其用作 REST 服务的参数。

    【讨论】:

    • 谢谢您的回复,我在REST控件上的partialRefresh中添加了参数,在Keys参数中添加了param.unidCompany,我仍然得到了所有公司的所有联系人,我尝试使用categoryfilter而是在类别视图中设置参数,然后我没有得到任何联系人。不知道为什么这不起作用,我在 Notes 客户端(XPiNC)中运行它
    • 按公司的UNID分类的视图=视图的第一个排序列是否包含公司的UNID?
    • 是的,视图按父 ID @text($REF) 升序排序,联系人文档是公司文档的子文档。如果我将文档 ID 硬编码到 REST 服务示例中:返回“2CC0412A766156617625749B006BB8FD”,这会强制显示该公司的联系人。使用带有实际选择的 unid 的参数不会。
    • 扩展密钥代码print('param.unidCompany: ' + param.unidCompany); return param.unidCompany 在服务器控制台中显示什么?
    • 跟踪(帮助、支持、显示跟踪)显示:param.unidCompany: null
    猜你喜欢
    • 2012-04-18
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多