【发布时间】:2017-11-03 18:56:41
【问题描述】:
我已阅读我能找到的所有文档并观看了所有我能找到的视频,但不明白如何执行此操作。我已经设置了一个 xPages REST 服务,它运行良好。现在我想将服务的结果放入组合框或预先输入的文本字段中。理想情况下,我想知道如何对这两种类型的字段进行操作。
我有一个应用程序,其中一个视图包含国家列表,另一个视图包含州列表,另一个视图包含城市列表。我希望第一个字段仅显示它在 XPages REST 服务中返回的数据列表中的国家字段。然后,根据选择的国家/地区,我希望将该国家/地区的州列在另一个字段中以供选择,等等。
我可以看到从按钮或 dojo 网格调用 REST 服务结果的代码,但我找不到如何调用它来填充上述任一类型的字段。
我应该在哪里调用该领域的服务?我原以为它会放在数据区域,但也许我只是没有找到正确的语法来使用。
2017 年 11 月 6 日:
我一直在听从您的建议,但仍然迷失方向。这是我目前在我的代码中的内容:
x$( "#{id:ApplCountry}" ).select2({
placeholder: "select a country",
minimumInputLength: 2,
allowClear : true,
multiple: false,
ajax: {
dataType: 'text/plain',
url: "./Application.xsp/gridData",
quietMillis: 250,
data: function (params) {
return {
search:'[name=]*'+params.term+'*',
page: params.page
};
},
processResults: function (data, page) {
var data = $.map(data, function (obj) {
obj.id = obj.id || obj["@entityid"];
obj.text = obj.text || obj.name;
return obj;
});
},
return {results: data};
}
}
});
我正在使用“text/plain”的数据类型,因为这是我理解在从 domino 应用程序收集数据时应该使用的。我已经尝试将其更改为 json,但没有任何区别。
我使用 processResults 是因为我知道这是 select2 版本 4 中应该使用的。
我不了解隐藏字段的全部用途,所以我一直远离它。
无论我做什么,虽然我的 REST 服务如果我直接放在 url 中就可以工作,但我无法获得任何数据来显示在该字段中。我想在字段中显示的是文档的国家代码,它在名为“name”的字段中(不是我的选择,这是我从 MySQL 导入数据之前的方式。
我已经阅读了文档并观看了视频,但仍然不能真正理解所有内容是如何组合在一起的。那是我对 REST 服务的问题。如果您在 Dojo 中使用它,您只需将服务的名称放在 Dojo 元素上的一个字段中就可以了,所以我不明白为什么要对另一种类型的 domino 元素进行所有额外的编码。它不应该以同样的方式工作吗?
我应该指出,在某些时候它确实显示了默认消息,所以它确实找到了该字段。只是不显示国家/地区选择。
【问题讨论】:
-
到目前为止您尝试过什么?可以发一下吗?
-
我会推荐使用像Select2这样的插件。它具有从休息服务加载数据的内置功能。此处示例:bootstrap4xpages.com/bs4xp/demos.nsf/select2.xsp
-
马克,我正在尝试使用它,因为你是对的,它听起来确实是一个可行的选择。我正在使用 select2 版本 4 并遵循 Johnny Oldenburger 的设置。我还是很迷茫。我收到 SyntaxError: missing : after property id[Learn More] Application.xsp:399:16 ,这是我返回一些数据的行。我会把代码放在我原来的帖子里。
标签: rest combobox xpages typeahead