下拉框json格式获取¶
下拉框json格式获取示例代码:
(function(){
var opts = createOptions(); //创建指定类对象
println("opts"+opts);
opts.add("A","A");
opts.add("B","B");
opts.add("C","C");
var optsJsonsStr = opts.toJSON(); //返回格式{'A': 'A','B': 'B','C': 'C'}
var optsJsons = opts.toJsonSuggest(); //返回格式[{"name":"A","id":"A"},{"name":"B","id":"B"},{"name":"C","id":"C"}]
return optsJsonsStr;
})()
脚本说明¶
该脚本用于创建下拉框选项并转换为JSON格式。使用 createOptions() 创建选项对象,添加选项后,可以通过 toJSON() 或 toJsonSuggest() 方法转换为不同的JSON格式。
脚本功能¶
- 创建选项对象: 使用
createOptions()创建选项对象 - 添加选项: 使用
opts.add(id, name)添加选项 - 转换为JSON: 使用
toJSON()或toJsonSuggest()转换为JSON格式 - 返回JSON字符串: 返回JSON格式的字符串
JSON格式说明¶
toJSON() 格式¶
返回对象格式的JSON字符串:
toJsonSuggest() 格式¶
返回数组格式的JSON字符串:
使用场景¶
- 动态生成下拉框选项
- 将选项数据转换为JSON格式
- 下拉框数据格式化
- 选项数据传递
扩展示例¶
示例1:从数据库查询生成选项¶
(function(){
var opts = createOptions();
var sql = "select domainid,item_名称,item_编码 from tlk_数据表";
var datas = queryBySQL(sql);
if(datas != null && datas.size() > 0){
for(var it = datas.iterator(); it.hasNext(); ){
var data = it.next();
var id = data.getItemValueAsString("编码");
var name = data.getItemValueAsString("名称");
opts.add(id, name);
}
}
return opts.toJsonSuggest();
})();
示例2:从当前文档字段生成选项¶
(function(){
var doc = getCurrentDocument();
var opts = createOptions();
// 从字段值生成选项
var fieldValue = doc.getItemValueAsString("字段名");
if(fieldValue != null && fieldValue.trim().length > 0){
var values = fieldValue.split(";");
for(var i = 0; i < values.length; i++){
var value = values[i].trim();
if(value.length > 0){
opts.add(value, value);
}
}
}
return opts.toJSON();
})();
示例3:根据条件生成选项¶
(function(){
var doc = getCurrentDocument();
var condition = doc.getItemValueAsString("条件字段");
var opts = createOptions();
if(condition != null && condition === "类型1"){
opts.add("1", "选项1");
opts.add("2", "选项2");
}else{
opts.add("3", "选项3");
opts.add("4", "选项4");
}
return opts.toJsonSuggest();
})();
示例4:固定选项列表¶
(function(){
var opts = createOptions();
// 添加固定选项
opts.add("", "请选择");
opts.add("1", "选项一");
opts.add("2", "选项二");
opts.add("3", "选项三");
return opts.toJsonSuggest();
})();
示例5:从用户列表生成选项¶
(function(){
var opts = createOptions();
var users = getUsersByRole("角色名称");
if(users != null && users.size() > 0){
for(var i = 0; i < users.size(); i++){
var user = users.get(i);
opts.add(user.getId(), user.getName());
}
}
return opts.toJsonSuggest();
})();
示例6:从部门列表生成选项¶
(function(){
var opts = createOptions();
var departments = getDepartments();
if(departments != null && departments.size() > 0){
for(var i = 0; i < departments.size(); i++){
var dept = departments.get(i);
opts.add(dept.getId(), dept.getName());
}
}
return opts.toJSON();
})();
关键函数说明¶
createOptions(): 创建选项对象,用于管理下拉框选项opts.add(id, name): 添加选项- 参数1: 选项ID(值)
- 参数2: 选项名称(显示文本)
opts.toJSON(): 转换为对象格式的JSON字符串- 返回格式:
{'id': 'name', ...} opts.toJsonSuggest(): 转换为数组格式的JSON字符串- 返回格式:
[{"name":"显示名","id":"值"}, ...]
两种JSON格式对比¶
toJSON() 格式¶
- 格式: 对象格式
- 用途: 简单的键值对映射
- 特点: 键和值相同或不同都可以
toJsonSuggest() 格式¶
- 格式: 数组格式,每个元素包含name和id
- 用途: 下拉框建议列表、自动完成等
- 特点: 结构更清晰,便于前端处理
选项添加说明¶
基本用法¶
- 第一个参数: 选项的值(ID),用于提交和存储
- 第二个参数: 选项的显示文本(名称),用于显示给用户
示例¶
注意事项¶
- ⚠️ ID和名称可以不同:
opts.add(id, name)中ID和名称可以是不同的值 - ⚠️ JSON格式选择: 根据前端需求选择
toJSON()或toJsonSuggest() - ⚠️ 空值处理: 添加选项前建议判断数据是否为空
createOptions()创建的对象是平台提供的特殊对象toJSON()返回的是对象格式,适合简单的键值对toJsonSuggest()返回的是数组格式,适合需要name和id分离的场景- 选项的顺序按照添加的顺序排列
- 可以添加空选项作为默认选项(如"请选择")
常见应用¶
- 动态下拉框: 根据条件动态生成下拉框选项
- 数据格式化: 将数据转换为下拉框需要的JSON格式
- 选项传递: 在不同脚本之间传递选项数据
- 数据绑定: 将数据库数据绑定到下拉框
- 级联选择: 实现级联下拉框的数据源
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1fb4d11cdtdkj
文档更新时间: 2024-01-22 03:18 作者:john