找回密码
 立即注册

QQ登录

只需一步,快速开始

linyonghe

注册会员

2

主题

4

帖子

88

积分

注册会员

积分
88
最新发帖
linyonghe
注册会员   /  发表于:2020-7-14 14:12  /   查看:4838  /  回复:6
1金币
本帖最后由 linyonghe 于 2020-7-17 09:06 编辑

我添加了一个日历组件,在点击wijmo自带筛选功能时无法关闭日历组件var edtdateTitle_flex = $('<button class="wj-glyph-filter" id="calendar" ><span  id="daterange_flex" class="form-control form-control-sm " name="daterange_flex" value="" placeholder="YYYY/MM/DD - YYYY/MM/DD" ></span></button>')[0];

edtdateTitle_flex.addEventListener('click', function () {
    $('#daterange_flex').daterangepicker({
            autoUpdateInput: false,
            format:'YYYY/MM',

daterangepicker代码省略flex.itemFormatter = function (panel, r, c, cell) {
    if (panel.cellType == wijmo.grid.CellType.ColumnHeader) {
        if (panel.columns[c].binding ==  'activityDate_c') {
            cell.appendChild(edtdateTitle_flex);
        }
    }}

最佳答案

查看完整内容

你好,demo只有AngularJS的版本,可以根据逻辑迁移到purejs环境中使用。 可以根据e的参数加判断,如图: 参数col指出了列标,通过它可以判断出具体哪一列需要cancel

6 个回复

正序浏览
linyonghe
注册会员   /  发表于:2020-7-16 09:17:04
6#
本帖最后由 linyonghe 于 2020-7-16 09:21 编辑
KevinChen 发表于 2020-7-15 19:08
您好,是链接访问不了还是?是需要完整的js示例,还是API文档呢?

您好,开发工程没有涉及到AngularJS,能否提供js参考资料
  1. filter.filterChanging.addHandler(function(s,e){
  2.               e.cancel=true;
  3.       })
复制代码


这行代码会停止触发wijmo原有过滤,怎么判断某列不触发这个e.cancel=true;

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-7-15 19:08:01
5#
您好,是链接访问不了还是?是需要完整的js示例,还是API文档呢?
回复 使用道具 举报
linyonghe
注册会员   /  发表于:2020-7-15 16:49:56
4#
KevinChen 发表于 2020-7-15 09:50
您好,这样添加的filter相当于在列头上浮了一个div层,所以无法随鼠标事件执行关闭。

推荐参考这篇示例 ...

能否提供js的参考资料
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-7-15 09:50:27
3#
您好,这样添加的filter相当于在列头上浮了一个div层,所以无法随鼠标事件执行关闭。

推荐参考这篇示例:

http://jsfiddle.net/gsdqveym/1/

关键代码如下:

  1. // create Filter instance to add Filter Icon               
  2.       var filter=new wijmo.grid.filter.FlexGridFilter(grid);
  3.       // cancel Filter Dialog open
  4.       filter.filterChanging.addHandler(function(s,e){
  5.               e.cancel=true;
  6.       })
  7.       // handle click event for FlexGrid and open custom filter
  8.             grid.hostElement.addEventListener("click",function(e){
  9.       var ht= grid.hitTest(e);
  10.                if(e.target.className.split(" ").indexOf("wj-glyph-filter")>-1){
  11.         filterItem=e.target;
  12.           var cstmFilter=$scope.customFilter;
  13.           cstmFilter.owner=e.target;
  14.           if(!cstmFilter.isVisible){
  15.                   cstmFilter.show();
  16.           }else{
  17.                   cstmFilter.hide();
  18.           }
  19.          
  20.         }
  21.       },true)
复制代码
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-7-14 18:16:50
2#
您好,问题已收到,明天中午前给您答复
回复 使用道具 举报
最佳答案
最佳答案
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-7-14 14:12:24
来自 7#
你好,demo只有AngularJS的版本,可以根据逻辑迁移到purejs环境中使用。

可以根据e的参数加判断,如图:



参数col指出了列标,通过它可以判断出具体哪一列需要cancel

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部