如何链接jqxGrid的2个不同单元格中的复选框

时间:2017-01-09 21:47:49

标签: jquery checkbox jqxgrid

我想要2列复选框,其中以下内容为真。

如果' A'然后切换到' B'可以打开/关闭 如果' A'那时候就已经过了' B'也必须关闭

这里有一组示例数据,但我不知道如何添加此功能。这基本上只是数据的前端验证,以防止用户意外地创建“不可能”的数据。场景。我甚至不确定从哪里开始定制所述的复选框。

https://jsfiddle.net/6rc8uraf/11/

var data = [{
  name: "Person1",
  A: true,
  B: true
}, {
  name: "Person2",
  A: true,
  B: false
}, {
  name: "Person3",
  A: false,
  B: false
}];

var source = {
  localdata: data,
  datafields: [{
    name: "name",
    type: "string"
  }, {
    name: "A",
    type: "bool"
  }, {
    name: "B",
    type: "bool"
  }],
  datatype: "array"
};

var adapter = new $.jqx.dataAdapter(source);

$("#jqxgrid").jqxGrid({
  width: "100%",
  source: adapter,
  editable: true,
  columnsresize: true,
  sortable: true,
  filterable: false,
  columns: [{
    text: "Name",
    datafield: "name",
    align: 'center',
    width: 150,
    menu: false
  }, {
    text: "A",
    datafield: "A",
    align: 'center',
    columntype: 'checkbox',
    width: 150,
    editable: true,
    menu: false
  }, {
    text: "B",
    datafield: "B",
    align: 'center',
    columntype: 'checkbox',
    menu: false,
    editable: true
  }]
});

1 个答案:

答案 0 :(得分:1)

绑定cellendedit事件以在Programmatic Editing

之后执行操作
$('#jqxgrid').on('cellendedit', function (event) {
    if (event.args.datafield == 'A' && event.args.value == false) {
        $("#jqxgrid").jqxGrid('setcellvalue', event.args.rowindex, 'B', false) //set value to false
        $("#jqxgrid").jqxGrid('setcolumnproperty', 'B', 'editable', false)//disable further editing
    } else if (event.args.datafield == 'A' && event.args.value == true) {
        // $("#jqxgrid").jqxGrid('setcellvalue', event.args.rowindex, 'B', true)
        $("#jqxgrid").jqxGrid('setcolumnproperty', 'B', 'editable', true) //enable editing
    }
});