У меня есть один выпадающий список и один вид дерева. @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>
пожалуйста помогите.
Вы можете отправить дополнительные данные с помощью объекта 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()
для обеспечения более надежного кода (нулевые проверки и т.д.).