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

Gijgo Grid数字列筛选报错toUpperCase is not a function问题求助

报错根因

Gijgo Grid的默认筛选逻辑统一按字符串类型处理所有字段值,执行筛选时会强制调用字段值的toUpperCase方法实现不区分大小写匹配,而数字类型的值不存在该方法,因此抛出类型错误。
你给年份列设置的type: 'number'仅会生效数字列对应的样式规则,不会触发组件内置的数字筛选逻辑,属于组件本身的适配缺失。

解决方案

以下两种方案可按需选择:

方案1:自定义筛选逻辑(推荐,不改动原始数据类型)

直接在年份列的配置中新增自定义筛选函数,覆盖组件默认的字符串筛选逻辑,适配数字类型匹配:

columns: [
  // 其他列配置保持不变
  { 
    field: 'CalendarYear', 
    sortable: true, 
    title: 'Year',
    type: 'number',
    // 新增自定义筛选逻辑
    filter: function(rowValue, filterInputValue) {
      // 筛选输入为空时直接匹配所有行
      if (!filterInputValue) return true;
      // 统一转为数字做等值匹配,也可根据需求改成大于、小于等逻辑
      return Number(rowValue) === Number(filterInputValue);
    }
  },
  // 其他列配置保持不变
]

如果你的筛选是通过外部搜索按钮触发reload实现的,可新增全局dataFilter回调自定义所有字段的筛选规则,彻底绕开组件默认的有问题的逻辑:

regChartGrid = $('#regionChartGrid').grid({
  // 原有所有配置保持不变
  // 新增全局筛选逻辑
  dataFilter: function (originalData, filterParams) {
    if (!filterParams) return originalData;
    return originalData.filter(item => {
      // 匹配产品类别
      if (filterParams.EnglishProductCategoryName && 
          !item.EnglishProductCategoryName.includes(filterParams.EnglishProductCategoryName)) {
        return false;
      }
      // 匹配区域
      if (filterParams.SalesTerritoryRegion && 
          !item.SalesTerritoryRegion.includes(filterParams.SalesTerritoryRegion)) {
        return false;
      }
      // 匹配年份
      if (filterParams.CalendarYear && 
          Number(item.CalendarYear) !== Number(filterParams.CalendarYear)) {
        return false;
      }
      return true;
    })
  }
});

方案2:转换数据类型(适配简单场景)

如果不需要保留年份的数字类型做后续计算,可以直接在数据源加载时将年份字段统一转为字符串类型,即可直接走组件默认的字符串筛选逻辑,不会触发报错:

// 从localStorage取数后先转换字段类型
var retrievedObject = JSON.parse(localStorage.getItem('stackedRegionChartSourceData'));
if (retrievedObject !== null) {
  // 遍历数据转年份为字符串
  retrievedObject.salesByRegQuery.forEach(item => {
    item.CalendarYear = String(item.CalendarYear);
  })
  // 后续原有逻辑保持不变
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:09:01