You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetSuite Suitelet渲染HTML模板:如何将数组作为下拉选框选项

在NetSuite Suitelet中直接通过数据源生成下拉选框选项

完全可以直接通过渲染数据源生成下拉选项,不需要额外接口。NetSuite的Suitelet模板引擎支持FreeMarker风格的指令,能直接在HTML模板中遍历数据源里的数组来生成<option>标签。

步骤1:调整Suitelet数据源,传递工单数组

修改你的Suitelet代码,把获取到的工单数组存入渲染用的DATA对象,确保模板能访问到:

// 获取工单数组(注意传递scriptContext参数,后续启用脚本参数时会用到)
var workorders = loadWorkOrders(scriptContext);

// 构造渲染数据源对象,将工单数组存入
var DATA = {
    workOrders: workorders
};

// 初始化渲染器并绑定数据源
var renderer = render.create();
renderer.templateContent = file.load(<file id>).getContents();
renderer.addCustomDataSource({
    format: render.DataSource.OBJECT,
    alias: "DATA",
    data: DATA
});
renderer.renderToResponse({response: scriptContext.response});

步骤2:修改HTML模板,遍历数组生成选项

在HTML的<select>标签内,用NetSuite模板的<#list>指令遍历DATA.workOrders数组,动态生成选项:

<select id="workorderIDInput" name="workorderIDInput">
    <option value="">Select a Work Order</option>
    <!-- 遍历工单数组生成每个选项 -->
    <#list DATA.workOrders as wo>
        <option value="${wo}">${wo}</option>
    </#list>
</select>

补充说明

  • <#list 数组 as 别名>是NetSuite模板引擎的遍历语法,和FreeMarker的#list指令一致
  • 如果需要区分选项的value和显示文本(比如value存工单内部ID,显示交易编号),可以修改loadWorkOrders函数返回对象数组:
    // 修改loadWorkOrders中的push逻辑
    workOrderIds.push({
        id: result.id, // 工单内部ID
        tranid: result.getValue('tranid') // 交易编号
    });
    
    对应的模板代码改成:
    <#list DATA.workOrders as wo>
        <option value="${wo.id}">${wo.tranid}</option>
    </#list>
    

异常处理优化

为避免搜索无结果或报错时模板渲染异常,在loadWorkOrders函数中默认返回空数组:

function loadWorkOrders(scriptContext){
    try {
        var workOrderIds = [];
        var searchId = 6427;
        var woSearch = search.load({id: searchId});
        woSearch.run().each(function(result){
            var woTranNum = result.getValue('tranid');
            workOrderIds.push(woTranNum);
            return true;
        });
        return workOrderIds;
    } catch (e) {
        log.error('loadWorkOrders error', e);
        return []; // 异常时返回空数组,避免模板报错
    }
}

内容的提问来源于stack exchange,提问作者FHTPG_Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 20:03:10