- 设置列来源。
- 将“模型”列的
filter 属性指向将用于过滤内容dropdownFilter 的函数
- 在该函数中,我们使用 id、manufacturer_id 和
source.filter() 过滤源
var manufacturers = [
{ id: 1, name: "Toyota" },
{ id: 2, name: "Honda" }
];
var models = [
{ id: 8, manufacturer_id: 1, name: "Corolla" },
{ id: 9, manufacturer_id: 2, name: "Civic" },
{ id: 10, manufacturer_id: 2, name: "Accord" }
];
var options = {
minDimensions: [2, 5],
columns: [
{
type: "dropdown",
title: "Manufacturer",
width: "150",
source: manufacturers
},
{
type: "dropdown",
title: "Model",
width: "150",
source: models,
// this is where the magic happens :)
filter: dropdownFilter
}
],
};
var mySpreadsheet = $("#spreadsheet").jexcel(options);
function dropdownFilter(instance, cell, c, r, source) {
//get the manufacturer_id from the previus column
var manufacturer_id = instance.jexcel.getValueFromCoords(c - 1, r);
if (manufacturer_id !== "") {
// if a manufacturer is selected filter source using its id
return source.filter(function (item) {
if (item.manufacturer_id == manufacturer_id) return true;
})
} else {
//if no manufacturer is selected return an empty array
return [];
// or uncomment the following line to return the full source
// return source
}
}