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

Polarion表格Widget更新问题:点击按钮能否修改查询并刷新?

修改Polarion表格Widget查询并刷新的解决方案

嘿,我明白你遇到的问题了——直接修改DOM里的查询内容确实不会让表格Widget自动刷新,因为Polarion的Widget是基于内部状态渲染的,DOM只是它的输出结果,改DOM不会同步到Widget的核心配置里。不过别担心,咱们可以用Polarion官方提供的JavaScript API来实现点击按钮更新查询并刷新表格的需求!

具体步骤和代码示例

首先,你需要先给你的表格Widget设置一个唯一ID:在Polarion页面编辑模式下,找到表格Widget的配置项,设置它的ID(比如my-task-table),这样我们才能通过API定位到它。

然后替换你的代码为下面的版本:

<button id="target">Test</button>
<script>
$("#target").click(function() {
    // 定位到表格Widget实例
    const tableWidget = polarion.components.getComponentById("my-task-table");
    
    if (!tableWidget) {
        console.warn("找不到目标表格Widget,请检查ID是否正确");
        return;
    }

    // 根据页面上下文构造新的查询语句
    let newQuery;
    if (!pageContext.taskIds.equals("")) {
        newQuery = `id:(${pageContext.TaskList}) AND NOT status: "closed"`;
    } else {
        newQuery = "NOT*.*";
    }

    // 更新Widget的查询参数
    tableWidget.setParameter("query", newQuery);
    // 触发Widget刷新,加载新数据
    tableWidget.refresh();
});
</script>

为什么这个方法有效?

  • polarion.components.getComponentById():这是Polarion内置的API,用来获取页面上的Widget实例,比直接操作DOM靠谱多了
  • setParameter("query", newQuery):直接修改Widget内部的配置参数,这才是真正改变查询逻辑的地方
  • refresh():调用Widget的刷新方法,让它重新执行新的查询并渲染结果

注意事项

  1. 确保你设置的Widget ID和代码里的my-task-table完全一致,大小写也要匹配
  2. 确认pageContext里的taskIds和TaskList属性是正确的——如果页面上下文里的变量名有变化,要对应修改
  3. 这段代码需要放在Polarion的HTML Widget里,确保在页面加载完成后能正常访问到polarion对象和Widget实例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:37:41