2016-02-19 2 views
0

У меня есть kendo ui treeview и выпадающий список на моей странице asp.net mvc. В раскрывающемся списке могут быть два значения. В зависимости от того, какой из них был выбран, я хочу изменить URL-адрес источника данных, который является методом в контроллере. Тип данных и структура данных из обоих URL-адресов будут одинаковыми. По сути, я хочу изменить URL-адрес: «@ Url.Content (« ~/Document/GetMyDocument »)» динамически. Ниже мой код TreeView:Как динамически изменять kendo UI treeview datasource

<script> 
    $("#treeview").kendoTreeView({ 
    checkboxes: { 
    checkChildren: true, 

}, 
dataSource: { 
transport: { 
    read: { 
     url: '@Url.Content("~/Document/GetMyDocument")', 
    type: "post", 
    dataType: "json" 
    } 
}, 
schema: { 
    model: { 
    text: "Name", 
    spriteCssClass: "fa fa-folder", 
    children: "Files" 
    } 
} 
}, 
    dataTextField: ["Name", "FileName"], 
    dataValueField: ["id"], 
    check: onCheck 
}); 

ответ

0

Вы можете указать URL в TreeView DataSource как функция

transport: { 
    read: { 
    url: function (e) { } 
    } 
} 

Вы можете слушать для изменений случае DropDownList и вызвать

$('#treeview').data('kendoTreeView').dataSource.read(); 

Внутри функции URL вы можете получить значение DropDownList и разрешить URL-адрес динамически:

var ddl = $('#myDDl').data('kendoDropDownList'); 
var value = ddl.value(); 
return value == "someValue" ? "/foo/bar": "/bar/baz"; 
Смежные вопросы