0

我的代码如下所示,我有一个如下所示的 json,当 json 对象具有 PQ 时,应选中 PQ 列复选框,当 json 对象具有 FG 时,应选中 FG 列复选框。现在,当用户想要更新一行时,我将如何知道更新后的行值(复选框更新)。如何捕捉下一列复选框状态?我的意思是每次当用户选中一个复选框时,我都应该获取所有行值并形成 json 以将数据发送到服务器。我怎样才能做到这一点

                 [{
                        "id": 1001,
                        "name": "TC1",
                        "usedIn": ["PQ"]
                    }, {
                        "id": 1002,
                        "name": "TC2",
                        "usedIn": ["PQ","FG"]
                    }, {
                        "id": 1003,
                        "name": "TC2",
                        "usedIn": ["FG"]
                    }];



 <wj-flex-grid auto-height="" allow-resizing="Both" additional-height="40" selection-mode="Row" is-read-only="false" items-source="vm.technicalCritrions" control="vm.flex" item-formatter="itemFormatter">
                        <wj-flex-grid-column header="PQ" width="*" binding="usedIn">
                            <wj-flex-grid-cell-template cell-type="Cell">
                                <input type="checkbox" ng-checked="$item.usedIn.indexOf('PQ')>-1" ng-click="vm.PQ($item,$event,$row,$col,vm.flex)" />
                            </wj-flex-grid-cell-template>
                        </wj-flex-grid-column>
                        <wj-flex-grid-column header="FG" width="*" binding="usedIn">
                            <wj-flex-grid-cell-template cell-type="Cell">
                                <input type="checkbox" ng-checked="$item.usedIn.indexOf('FG')>-1" ng-click="vm.FG($item,$event,$row,$col,vm.flex)" />
                            </wj-flex-grid-cell-template>
                        </wj-flex-grid-column>
                        <wj-flex-grid-column format="D" binding="id" width="*"></wj-flex-grid-column>
                        <wj-flex-grid-column header="{{'global.titles.name' | translate}}" binding="name" width="*">
                            <b>{{$item.name}}</b>
                        </wj-flex-grid-column>
                    </wj-flex-grid>

在此处输入图像描述

4

1 回答 1

0

您可以使用“cellEditEnded”事件来检测用户编辑,包括复选框更改。该事件提供了指示编辑了哪些行和列的参数。

例如,如果编辑的属性是“布尔”类型(复选框),则此代码检测编辑并将一些信息记录到控制台:

 $scope.cellEditEnded = function(s, e) {
      var flex = s, // FlexGrid is the event sender
          row = flex.rows[e.row], // row that was edited
          col = flex.columns[e.col]; // column that was edited

      // do something with the data object that was changed
      if (col.dataType == wijmo.DataType.Boolean) {
          console.log('you changed the value of the "' + 
               col.binding + '" property for this object: ');
          console.log(JSON.stringify(row.dataItem));
      }
 }

你可以在这个小提琴中看到它是如何工作的:

http://jsfiddle.net/Wijmo5/Lwdxkcow/

于 2016-04-18T19:20:25.333 回答