如何获取 JqWidgets 网格中所有未选择的行索引的列表
How to get list of all un-selected row index in JqWidgets grid
我正在尝试获取 jqwidgets 网格中所有未选择的行索引的列表。因为有一个预定义的方法来获取所有选定行索引的列表:
var allSelectedVals=[];
var rowindexes = jQuery('#userProfiles').jqxGrid('getselectedrowindexes');
for (var i = 0; i < rowindexes.length; i++)
{
var data = jQuery('#userProfiles').jqxGrid('getrowdata', rowindexes[i]);
allSelectedVals.push(data.userId);
}
alert('allSelectedVals: ' + allSelectedVals);
有没有类似的方法来获取未选择的行索引?
我会感谢你的帮助来获得它。
提前致谢
jQWidgets Grid returns 所有行的 "getboundrows" 方法 - 示例:
var data = generatedata(5);
var source = {
localdata: data,
datafields: [{
name: 'firstname',
type: 'string'
}, {
name: 'lastname',
type: 'string'
}, {
name: 'productname',
type: 'string'
}, {
name: 'date',
type: 'date'
}, {
name: 'quantity',
type: 'number'
}, {
name: 'price',
type: 'number'
}],
datatype: "array"
};
var adapter = new $.jqx.dataAdapter(source);
$("#jqxgrid").jqxGrid({
width: 600,
height: 100,
theme: 'energyblue',
source: adapter,
sortable: true,
selectionmode: 'singlecell',
columns: [{
text: 'First Name',
datafield: 'firstname',
columngroup: 'Name',
width: 90
}, {
text: 'Last Name',
columngroup: 'Name',
datafield: 'lastname',
width: 90
}, {
text: 'Product',
datafield: 'productname',
width: 170
}, {
text: 'Order Date',
datafield: 'date',
width: 160,
cellsformat: 'dd-MMMM-yyyy'
}, {
text: 'Quantity',
datafield: 'quantity',
width: 80,
cellsalign: 'right'
}, {
text: 'Unit Price',
datafield: 'price',
cellsalign: 'right',
cellsformat: 'c2'
}]
});
$("#jqxbutton").jqxButton({
theme: 'energyblue',
width: 200,
height: 30
});
$('#jqxbutton').click(function () {
var rows = $('#jqxgrid').jqxGrid('getboundrows');
var result = "";
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
result += row.firstname + " " + row.lastname + " " + row.productname + " " + row.date + " " + row.quantity + " " + row.price + "\n";
}
alert(result);
});
http://jsfiddle.net/jqwidgets/3LLVW/。有了所选行的索引,您可以遍历这些行并检查该行的绑定索引是否在 rowIndexes 数组中。如果不是,则该行未被选中。
没有用于此目的的内置方法,所以我在这里编写了简单的可能功能:我们获取总行数,并从所选项目中删除所有 ID(所选项目是在选择时计算的,而不是调用此方法时,因此不采取任何有意义的努力)。
方法如下:
function getUnselectedIndexes(selector)
{
var selectedIndexes = $(selector).jqxGrid('getselectedrowindexes');
var meta = $(selector).jqxGrid('getdatainformation');
var total = meta.rowscount;
var unSelectedIndexes = new Array();
for (i = 0; i < total; i++)
{
if (selectedIndexes.indexOf(i) !== -1)
{
continue;
}
unSelectedIndexes.push(i);
}
console.log(unSelectedIndexes);
return unSelectedIndexies;
}
并且可以这样调用得到所有未选中的索引:
getUnselectedIndexes("#userProfiles");
我正在尝试获取 jqwidgets 网格中所有未选择的行索引的列表。因为有一个预定义的方法来获取所有选定行索引的列表:
var allSelectedVals=[];
var rowindexes = jQuery('#userProfiles').jqxGrid('getselectedrowindexes');
for (var i = 0; i < rowindexes.length; i++)
{
var data = jQuery('#userProfiles').jqxGrid('getrowdata', rowindexes[i]);
allSelectedVals.push(data.userId);
}
alert('allSelectedVals: ' + allSelectedVals);
有没有类似的方法来获取未选择的行索引?
我会感谢你的帮助来获得它。 提前致谢
jQWidgets Grid returns 所有行的 "getboundrows" 方法 - 示例:
var data = generatedata(5);
var source = {
localdata: data,
datafields: [{
name: 'firstname',
type: 'string'
}, {
name: 'lastname',
type: 'string'
}, {
name: 'productname',
type: 'string'
}, {
name: 'date',
type: 'date'
}, {
name: 'quantity',
type: 'number'
}, {
name: 'price',
type: 'number'
}],
datatype: "array"
};
var adapter = new $.jqx.dataAdapter(source);
$("#jqxgrid").jqxGrid({
width: 600,
height: 100,
theme: 'energyblue',
source: adapter,
sortable: true,
selectionmode: 'singlecell',
columns: [{
text: 'First Name',
datafield: 'firstname',
columngroup: 'Name',
width: 90
}, {
text: 'Last Name',
columngroup: 'Name',
datafield: 'lastname',
width: 90
}, {
text: 'Product',
datafield: 'productname',
width: 170
}, {
text: 'Order Date',
datafield: 'date',
width: 160,
cellsformat: 'dd-MMMM-yyyy'
}, {
text: 'Quantity',
datafield: 'quantity',
width: 80,
cellsalign: 'right'
}, {
text: 'Unit Price',
datafield: 'price',
cellsalign: 'right',
cellsformat: 'c2'
}]
});
$("#jqxbutton").jqxButton({
theme: 'energyblue',
width: 200,
height: 30
});
$('#jqxbutton').click(function () {
var rows = $('#jqxgrid').jqxGrid('getboundrows');
var result = "";
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
result += row.firstname + " " + row.lastname + " " + row.productname + " " + row.date + " " + row.quantity + " " + row.price + "\n";
}
alert(result);
});
http://jsfiddle.net/jqwidgets/3LLVW/。有了所选行的索引,您可以遍历这些行并检查该行的绑定索引是否在 rowIndexes 数组中。如果不是,则该行未被选中。
没有用于此目的的内置方法,所以我在这里编写了简单的可能功能:我们获取总行数,并从所选项目中删除所有 ID(所选项目是在选择时计算的,而不是调用此方法时,因此不采取任何有意义的努力)。
方法如下:
function getUnselectedIndexes(selector)
{
var selectedIndexes = $(selector).jqxGrid('getselectedrowindexes');
var meta = $(selector).jqxGrid('getdatainformation');
var total = meta.rowscount;
var unSelectedIndexes = new Array();
for (i = 0; i < total; i++)
{
if (selectedIndexes.indexOf(i) !== -1)
{
continue;
}
unSelectedIndexes.push(i);
}
console.log(unSelectedIndexes);
return unSelectedIndexies;
}
并且可以这样调用得到所有未选中的索引:
getUnselectedIndexes("#userProfiles");