LINUX.ORG.RU

История изменений

Исправление 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>