[TreeView] ツリーの再構築
by Wijmo5_jp
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<script src="https://codepen.io/wijmo-jp/pen/gReOKE.js"></script>
<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/wijmo.nav.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/cultures/wijmo.culture.ja.min.js"></script>
<script src="https://demo.grapecity.com/wijmo/sample/scripts/sample.js"></script>
<link rel="stylesheet" href="https://demo.grapecity.com/wijmo/sample/styles/sample.css">
<div class="container">
<h3>ツリーの再構築</h3>
<p>TreeViewのデータソース(itemsSource)はCollectionViewではなく配列であり、データソースのデータを変更してもコントロールの表示は更新されませんが、TreeView.loadTreeメソッドを実行すると、ツリー全体を再構築して、コントロールの表示を更新することができます。</p>
<p>※CollectionViewは、階層化データの変更追跡や通知に対応していません。</p>
<form name="form" class="form-inline">
<button id="updateData" type="button" class="btn btn-default">データソースを変更</button>
<button id="loadTree" type="button" class="btn btn-default">ツリーを再構築</button>
</form>
<div id="treeView"></div>
</div>
CSS
#treeView {
margin-top: 10px;
height: 400px;
}
JavaScript
var products = sample.productsTree();
var treeView = new wijmo.nav.TreeView('#treeView', {
itemsSource: products,
displayMemberPath: '名前'
});
document.form.updateData.addEventListener('click', function (e) {
products[0].items[0].名前 = '商品名を変更';
treeView.refresh();
});
document.form.loadTree.addEventListener('click', function (e) {
treeView.loadTree();
});