История изменений
Исправление theNamelessOne, (текущая версия) :
Вот немного (псевдо-)кода для иллюстрации идеи:
<div id="my-tree"></div>
<input id="my-value" type=hidden value="">
<script type="text/javascript">
$(document).ready(function() {
function onSelect(e) {
// Псевдокод обработчика нажатия на элемент дерева
var TAG = GetClosestTAGByClass(e.node, "node-value");
var VALUE = TAG.GetVALUE();
ChangeHiddenInput("my-value", VALUE);
}
/*
* Данные в следующем формате:
* [{"id": 1, "title": "foo", "children": false},
* {"id": 2, "title": "bar", "children": true}
* ]
* Поле id используется при запросе к серверу,
* также я хочу использовать его в качестве значения
* для input hidden. Поле title определяет выводимый текст,
* children — есть ли у текущего узла потомки
*
* Названия полей определяются ниже (см. model и dataTextField)
*/
var data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "/path/to/my/data.json",
dataType: "json"
}
},
schema: {
model: {
id: "id", // Название поля для id
hasChildren: "has_children" // Название поля, определяющего, есть ли узла потомки
}
}
});
$("#my-tree").kendoTreeView({
dataSource: data,
dataTextField: "title", // Название поля, данные из которого будут выводиться
select: onSelect,
// С помощью шаблона "внедряем" значение id в генерируемый узел
template: "<TAG class='node-value' VALUE='#= item.id #'>#= item.title #</TAG>"
});
});
</script>
Исходная версия theNamelessOne, :
Вот немного (псевдо-)кода для иллюстрации идеи:
<div id="my-tree"></div>
<input id="my-value" type=hidden value="">
<script type="text/javascript">
$(document).ready(function() {
function onSelect(e) {
// Псевдокод обработчика нажатия на элемент дерева
var TAG = GetClosestTAGByClass(e.node, "node-value");
var VALUE = TAG.GetVALUE();
ChangeHiddenInput("my-value", VALUE);
}
/*
* Данные в следующем формате:
* [{"id": 1, "title": "foo", "children": false},
* {"id": 2, "title": "bar", "children": true}
* ]
* Поле id используется при запросе к серверу,
* также я хочу использовать его в качестве значения
* для input hidden. Поле title определяет выводимый текст,
* children — есть ли у текущего узла потомки
*
* Названия полей определяются ниже (см. model и dataTextField)
*/
var data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "/path/to/my/data.json",
dataType: "json"
}
},
schema: {
model: {
id: "id", // Название поля для id
hasChildren: "has_children" // Название поля, определяющего, есть ли узла потомки
}
}
});
$("#my-tree").kendoTreeView({
dataSource: data,
dataTextField: "title", // Название поля, данные из которого будут выводиться
select: onSelect,
template: "<TAG class='node-value' VALUE='#= item.id #'>#= item.title #</TAG>"
});
});
</script>