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