как использовать переменную скрипта в источнике данных кендо

0

У меня есть один выпадающий список и один вид дерева. @Html.DropDownListFor(model => model.xyz, Model.xyzlist, new {id = "dropdownid"})

теперь я хочу вызвать метод действия контроллера при событии изменения выпадающего списка в jquery.

<script>
var id = 0;
      $('#dropdownid').change(function(){
         id= $('#dropdownid').val();
     });

как использовать переменную id в URL-адресе чтения: {} perameter

datasource= new kendo.data.HierarchicalDataSource({
                                    transport: {
                                        read: {
                                            url: "@Html.Raw(Url.Action("actionmethod", "controllername", new { @ID= id }))",
                                            type: "POST",
                                            dataType: "json"
                                        }
                                    },
                                    schema: {
                                        model: {
                                            id: "id",
                                            hasChildren: "hasChildren",
                                            //expanded: true
                                        }
                                    }
                                });



 $(document).ready( function(){
                                $("#CountryZone-treeview").kendoTreeView({
                                    loadOnDemand: false,
                                    dataSource: datasource,
                                    dataTextField: "Name",
                                    dragAndDrop: true,..................etc

</script>

пожалуйста помогите.

Теги:
asp.net-mvc
kendo-treeview

1 ответ

1
Лучший ответ

Вы можете отправить дополнительные данные с помощью объекта transport.read.data (см. Здесь документацию Kendo). Ваш источник данных может выглядеть так:

datasource = new kendo.data.HierarchicalDataSource({
                                    transport: {
                                        read: {
                                            url: "@Html.Raw(Url.Action("actionmethod", "controllername", new { @ID= id }))",
                                            type: "POST",
                                            dataType: "json"
                                            data: { data: $('#dropdownid').val() }
                                        }
                                    },
                                    schema: {
                                        model: {
                                            id: "id",
                                            hasChildren: "hasChildren",
                                            //expanded: true
                                        }
                                    }
                                });

Вы также можете getDropDownId() имя функции для data (например, getDropDownId()), а не $('#dropdownid').val() для обеспечения более надежного кода (нулевые проверки и т.д.).

  • 1
    привет данные: $ ('# dropdownid'). val () это не работает, но я пытаюсь получить следующие данные: {data: $ ('# dropdownid'). val ()} работает нормально. спасибо за идею.
  • 0
    Хороший улов Jatin, я обновил ответ, чтобы отразить обновление.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню