[FlexGrid] プログラムからフィルターを適用する方法
by sarunokoshikake
HTML
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.grapecity.com/wijmo/5.latest/styles/wijmo.min.css">
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/cultures/wijmo.culture.ja.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.grid.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.input.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.grid.filter.min.js"></script>
■条件フィルタによるフィルタリング<br />
<div id="FlexGrid1"></div><br />
<br />
■値フィルタによるフィルタリング<br />
<div id="FlexGrid2"></div><br />
JavaScript
// ■条件フィルタによるフィルタリング
var grid1 = new wijmo.grid.FlexGrid('#FlexGrid1');
// データの設定
grid1.itemsSource = createData(30);
// フィルタの取得
var filter1 = new wijmo.grid.filter.FlexGridFilter(grid1);
// カラムフィルタの取得(4列目のフィルタ)
var columnFilter1 = filter1.getColumnFilter(grid1.columns[3]);
// 抽出条件の指定
// 1000以上
columnFilter1.conditionFilter.condition1.value = 1000;
columnFilter1.conditionFilter.condition1.operator = wijmo.grid.filter.Operator.GE;
// かつ
columnFilter1.and = true;
// 20000以下
columnFilter1.conditionFilter.condition2.value = 20000;
columnFilter1.conditionFilter.condition2.operator = wijmo.grid.filter.Operator.LE;
// フィルタの適用
filter1.apply();
// ■値フィルタによるフィルタリング
var grid2 = new wijmo.grid.FlexGrid('#FlexGrid2');
// データの設定
grid2.itemsSource = createData(30);
// フィルタの取得
var filter2 = new wijmo.grid.filter.FlexGridFilter(grid2);
// カラムフィルタの取得(2列目のフィルタ)
//var columnFilter2 = filter2.getColumnFilter(grid2.columns[1]);
// 抽出条件の指定
// 小料理なんごく と 割烹ふじい を選択
columnFilter2.valueFilter.showValues = new Object({小料理なんごく:true, 割烹ふじい:true});
// フィルタの適用
//filter2.apply();
function createData(count) {
var data = [];
var customers = '小料理なんごく,割烹ふじい,海鮮料理くじら,居酒屋ななべえ,酒蔵でん,寿ストアー,温泉レストラン,大和マーケット,東海道スーパー,小町ストアー'.split(',');
for (var i = 0; i < count; i++) {
data.push({
受注コード: i,
会社名: customers[random(customers.length)],
受注日: new Date(Date.now() - random(1000000000)),
金額: random(1000) * 100,
出荷済: random(2) === 0
});
}
return data;
}
function random(max) {
return Math.floor(Math.random() * max);
}