Для выполнения примера в теге HEAD подключите ссылки на библиотеку компонентов PP.js и таблицы визуальных стилей PP.css. В теге BODY добавьте элемент DIV с идентификатором «container».
Подключим скрипт, генерирующий случайные вершины:
<script src="genJsonDyn.js" type="text/javascript"></script>
В тег <script> добавим следующий код:
// Функция получения новых вершин
function onDataRequest(sender, args) {
var nodes = {};
var node;
if (args.Partial)
for (var i = 0; i < args.Request.length; i++) {
node = genNode(args.Request[i].Parent, args.Request[i].Index, count);
nodes[node['k']] = node;
}
else {
for (var i = 0; i < count; i++) {
node = genNode(args.Parent, i, count);
nodes[node['k']] = node;
}
}
PP.setTimeout(function () { // Имитируем задержку ответа от сервера
sender.loadNodes(nodes); // Загрузка вершин
}, 400);
};
var count = 50; // Количество создаваемых вершин
var json = [];
json.push({
'k': '',
'@hc': true,
'@cc': count
});
// Создадим компонент
var t, treelist;
t = treelist = new PP.Ui.DynamicTreeList({
ParentNode: 'container',
DataObject: json,
DataMappers: {
Key: 'k',
Index: 'i',
Parent: 'p',
Content: new PP.PropertyMapper({
Getter: function (item) { return item.a.it },
Setter: function (item, value) { item.a.it = value; },
Context: null
}),
Selected: 's',
FixedSelected: '@fs',
Expanded: 'e',
ChildrenCount: '@cc' }, Width: 700, Height: 550, ShowCheckBoxes: true, EnableSort: true, ShowCaptions: true, ShowTree: true, Captions:
[{
Content: 'first',
Width: '36%'
},{
Content: 'second',
Width: '11%'
},{
Content: 'third', Width: '53%' } ], DataRequest: onDataRequest });
В результате выполнения примера был создан компонент DynamicTreeList. При открытии вершины будут запрошены новые вершины и динамически добавлены в дерево.
См. также: