普通报表,多选下拉框禁止全选

怎么才能实现 可以多选 但不让全选

FineReport Azwraith 发布于 2025-6-12 10:49
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
孤陌Lv6资深互助
发布于2025-6-12 11:32(编辑于 2025-6-12 14:34)

$.extend(FR.CheckBoxEditor.prototype,{initControlPane:function(){this.$controlPane = $("

").addClass('fr-checkbox-control').css('display',"none");

}}); 放在控件的初始化里

那就在 编辑前事件 写

$("div :contains(全选)").last().parent().remove();

  • Azwraith Azwraith(提问者) 这个最简单 也可行 棒
    2025-06-12 11:38 
  • Azwraith Azwraith(提问者) 但是这个会把整个模板都取消掉 。。怎么针对单个控件取消呀
    2025-06-12 14:16 
  • 孤陌 孤陌 回复 Azwraith(提问者) 在编辑前事件 $("div :contains(全选)").last().parent().remove();
    2025-06-12 14:35 
  • Azwraith Azwraith(提问者) 回复 孤陌 这个正常确实可以了,但是如果在筛选框那里停留打个空格。。全选就出来了,我把五个事件都添加了也还是会出来
    2025-06-12 15:05 
  • 孤陌 孤陌 回复 Azwraith(提问者) 那真没有好的方法了 本来就是反人类的要求
    2025-06-12 15:51 
最佳回答
0
华莉星宸Lv7专家互助
发布于2025-6-12 10:50(编辑于 2025-6-12 10:51)

搞个编辑后事件判断一下是否全选了  

------------

参考https://bbs.fanruan.com/wenda/question/143088.html

最佳回答
0
ScyalcireLv7高级互助
发布于2025-6-12 10:51

用JS控制

// 获取全部可选值的数组

const allOptions = this.options.items.map(item => item.value); 

// 设置最大可选数量(比总数少1)

const maxSelect = allOptions.length - 1; 

contentPane.on("afterParamWidgetEdit", (paramName, widget, value) => {

  if (paramName === "yourParamName") {

    const selected = value.split(',').filter(Boolean);

    

    if (selected.length === allOptions.length) {

      // 禁止全选:自动取消最后一个选中项

      const newVal = selected.slice(0, maxSelect).join(',');

      widget.setValue(newVal);

      _g().showMessageDialog("禁止全选操作!", "警告");

    }

  }

});

  • Azwraith Azwraith(提问者) 第一句item那里怎么报错呀cannot read properties of undefined (reading 'map')
    2025-06-12 11:25 
  • 5关注人数
  • 71浏览人数
  • 最后回答于:2025-6-12 14:34
    请选择关闭问题的原因
    确定 取消
    返回顶部