【问题标题】:Making the grouped row editable in angular-slickgrid使分组行在 angular-slickgrid 中可编辑
【发布时间】:2019-05-07 14:42:18
【问题描述】:

在实现 angular-slickgrid 时,我需要使分组行(格式化程序:组的子行的总和)可编辑,然后将值传递给组的子行。 如何在保持引用不变的同时实现这一目标?

【问题讨论】:

  • 我不熟悉 Angular-slickgrid,但我可以告诉你,这需要对网格进行大量定制。您需要弄清楚如何使总和行可编辑(假设它后面没有数据行),并且最容易在该行上创建或使用现有事件来循环数据并更改与组匹配的行。
  • 我能够使行可编辑、捕获事件并获取该组中的行,但问题在于保持引用相同。我必须将 HTML 和脚本作为字符串注入来执行任务,但是在传递时我必须将行解析为字符串,这会弄乱引用
  • 您可以为您遇到的问题发布一些代码吗?很难想象
  • 把它放在答案部分

标签: angular slickgrid


【解决方案1】:
groupByDurationEffortDrivenPercent() {
    // ${GroupTotalFormatters.sumTotals(g.totals,columns[6])}
    var columns=this.columnDefinitions
    this.dataviewObj.setGrouping([
      {
        getter: 'duration',
        formatter: function(g){

          let ff= JSON.stringify(g.rows)
          let tester=89

          return `Duration:  ${g.value}  <span style="color:green">(${g.count} items)</span><div onclick='x=dissagregate(${ff},this);console.log(x)' class="slick-cell l7 r7">${GroupTotalFormatters.sumTotals(g.totals,columns[6])}</div> 
          <script>
              function dissagregate(x,z,y){
                child=x[0]
                child['cost']=200

                old_value=  parseFloat(y.innerText)

                if(isNaN(old_value)){

                }
                else{

                  var html="<input type='text' value='" + old_value + "' onblur='changeinput(this)'  >"
                  y.removeChild(y.firstChild)
                  y.innerHTML=html


                }
                return x;
               }

              function changeinput(ele){
                var parent= ele.parentNode
                var val = ele.value;
                parent.innerText=val
              }


          </script>

          `;
        },
        aggregators: [
          new Aggregators.Sum('duration'),
          new Aggregators.Sum('cost')
        ],
        aggregateCollapsed: true,
        lazyTotalsCalculation: false,
        displayTotalsRow:false

      },

【讨论】:

  • 我想通过脚本修改g.rows
  • 首先,这不应该是一个答案,它应该是你问题的一部分。其次,你永远不应该插入这样的脚本,这在安全方面是如此危险。 formatter 应该是一个字符串,并且只是一个仅用于显示组标题的字符串。我不认为 SlickGrid 组格式化程序是可编辑的,所以正如@Ben 所说,这需要大量自定义。
猜你喜欢
  • 2011-05-25
  • 2011-05-09
  • 2014-01-21
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
相关资源
最近更新 更多