Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在jqxGrid中,如何区分具有数据的行和长度为0的行?_Jquery_Jqxgrid - Fatal编程技术网

Jquery 在jqxGrid中,如何区分具有数据的行和长度为0的行?

Jquery 在jqxGrid中,如何区分具有数据的行和长度为0的行?,jquery,jqxgrid,Jquery,Jqxgrid,我有一个包含n行的网格。此网格包含一个复选框列,此复选框允许最终用户向数据库添加行或不添加行。我的问题是我的代码正在添加所有内容。可用数据和空行。如何判断行的长度是否为0 网格代码 var data = {}; var source = { localdata: data, datatype: "array", datafields: [{ name: 'UOMRelatedUnit_ID', type: 's

我有一个包含n行的网格。此网格包含一个复选框列,此复选框允许最终用户向数据库添加行或不添加行。我的问题是我的代码正在添加所有内容。可用数据和空行。如何判断行的长度是否为0

网格代码

    var data = {};

    var source = {
      localdata: data,
      datatype: "array",
      datafields: [{
        name: 'UOMRelatedUnit_ID',
        type: 'string'
      }, {
        name: 'UOMRelatedUnit_AddItem',
        type: 'bool'
      }, {
        name: 'UOMRelatedUnit_Name',
        type: 'string'
      }, {
        name: 'UOMRelatedUnit_Abbreviation',
        type: 'string'
      }, {
        name: 'UOMRelatedUnit_ConversionOfBaseUnits',
        type: 'number'
      }],
      addrow: function(rowid, rowdata, position, commit) {
        //Server Action
        commit(T);
      },
      updaterow: function(rowid, newdata, commit) {
        //Server Action
        commit(T);
      }
    };
    var dataAdapter = new $.jqx.dataAdapter(source);

    $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid({
      width: 500,
      height: 200,
      source: dataAdapter,
      editable: T,
      selectionmode: 'singlecell',
      theme: 'energyblue',
      showtoolbar: T,
      rendertoolbar: function(toolbar) {
        var me = this;
        var container = $("<div style='margin: 5px;'></div>");
        toolbar.append(container);
        container.append('<input id="addUoMRelatedUnitsRowButton" type="button" value="Add New Row" />');
        container.append('<input style="margin-left: 5px;" id="addUoMRelatedUnitsMultipleRowsButton" type="button" value="Add Multiple New Rows" />');
        $("#addUoMRelatedUnitsRowButton").jqxButton();
        $("#addUoMRelatedUnitsMultipleRowsButton").jqxButton();

        // create new row.
        $("#addUoMRelatedUnitsRowButton").on('click', function() {
          $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('beginupdate');
          var GridObject = ['']
          var commit = $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('addrow', null, GridObject);
          $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('endupdate');
        });

        // create new rows.
        $("#addUoMRelatedUnitsMultipleRowsButton").on('click', function() {
          $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('beginupdate');
          for (var i = 0; i < 5; i++) {
            var GridObject = ['']
            var commit = $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('addrow', null, GridObject);
          }
          $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('endupdate');
        });
      },
      columns: [{
        text: '',
        editable: F,
        datafield: 'UOMRelatedUnit_ID',
        width: 0
      }, {
        text: 'Add',
        editable: T,
        datafield: 'UOMRelatedUnit_AddItem',
        columntype: 'checkbox',
        width: 40
      }, {
        text: 'Name',
        editable: T,
        datafield: 'UOMRelatedUnit_Name',
        columntype: 'textbox',
        width: 200
      }, {
        text: 'Abbreviation',
        editable: T,
        datafield: 'UOMRelatedUnit_Abbreviation',
        columntype: 'textbox',
        width: 100
      }, {
        text: '# of Base Unit',
        editable: T,
        datafield: 'UOMRelatedUnit_ConversionOfBaseUnits',
        columntype: 'textbox',
        width: 100
      }]
    });

     // select or unselect rows when the checkbox is checked or unchecked.
    $("#jqxUOMRelatedUnitsDropdownGrid").bind('cellendedit', function(event) {
      if (event.args.value) {
        $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('selectrow', event.args.rowindex);
      } else {
        $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('unselectrow', event.args.rowindex);
      }
    });

    $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('beginupdate');
    var GridObject = ['']
    var commit = $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('addrow', null, GridObject);
    $("#jqxUOMRelatedUnitsDropdownGrid").jqxGrid('endupdate');
编辑1

网格中的空行示例


找到答案后,我需要做的就是检查AddItem列是否未定义,这就解决了问题:


如果($.type(row.UOMRelatedUnit\u AddItem)!=“未定义”)

长度为0的行(数组)何时会有数据?或者,当用户添加了过多的空行(如上图所示)时,为什么包含数据(即使是0/默认数据)的行的长度为0?@user2864740。您的意思可能是jqxGrid而不是jqGrid?您应该更改问题的标记,并替换文本中的名称。
if(!row.UOMRelatedUnit_AddItem || row.length === 0) {
    _row["Name"] = $("#txtUnitOfMeasureSetName").val();
    _row["Active"] = T;
    _row["UnitOfMeasureTypeID"] = $("input[type='radio'][id='rblUnitOfMeasureType']:checked").val();
    _row["BaseUnitID"] = $("input[type='radio'][id='rblUnitOfMeasureBaseUnit']:checked").val();
    _row["RelatedUnitDisplayOrder"] = RecordCount;
    _row["RelatedUnitName"] = row.UOMRelatedUnit_Name;
    _row["RelatedUnitAbbreviation"] = row.UOMRelatedUnit_Abbreviation;
    _row["RelatedUnitConversionRatio"] = row.UOMRelatedUnit_ConversionOfBaseUnits;
    _row["UnitOfMeasureSetID"] = UnitOfMeasureSetID;
    _UnitOfMeasureRelatedUnitData[index++] = _row;
    RecordCount += 1;
}