下面是我的代码
$("#lhsPanelBar").kendoMenu({
orientation: 'vertical',
dataSource:
{
type: 'json',
transport: {
read: "http://localhost:3549/api/LHSMenu"
}
},
});
但 Controller 上没有服务器命中,菜单显示为“未定义”。
Controller 代码
public class LHSMenuController : ApiController
{
private IRepo repo;
public LHSMenuController()
{
repo = new Repository();
}
[HttpGet]
public IEnumerable<LHSMenu> GetLHSMenu()
{
return this.repo.Menu;
}
}
最佳答案
剑道菜单无法直接执行此操作,但您可以使用数据源的更改方法并从此函数创建菜单,尝试以下操作:
var menuDataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/app/test/menuItems",
dataType: "json"
}
},
change: function() {
var dataMenu = this.data();
console.log("from change: " + dataMenu.length);
for (var indexMenuDataSource = 0; indexMenuDataSource < dataMenu.length; indexMenuDataSource++) {
var objectToPut = {};
var data = dataMenu[indexMenuDataSource];
objectToPut.text = data.text;
objectToPut.url = data.url;
objectToPut.cssClass = data.cssClass;
objectToPut.imageUrl = data.imageUrl;
if(data.items.length > 0){
objectToPut.items = [];
for(var indexSubItem = 0; indexSubItem < data.items.length; indexSubItem++){
var subItem = {};
subItem.text = data.text;
subItem.url = data.url;
subItem.cssClass = data.cssClass;
subItem.imageUrl = data.imageUrl;
objectToPut.items.push(subItem);
}
}
menu.insertAfter(objectToPut, menu.element.children("li:last"));
}
}
});
var menu = $("#menuTest").kendoMenu().data("kendoMenu");
menuDataSource.read(); //Will launch the change function
注意:这是一个草稿,创建另一个函数来迭代 sub > sub > sub 项。
关于kendo-ui - 如何将kendo-menu绑定(bind)到远程数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23090124/