下面是我的代码
$("#lhsPanelBar").kendoMenu({
orientation: 'vertical',
dataSource:
{
type: 'json',
transport: {
read: "http://localhost:3549/api/LHSMenu"
}
},
});
但控制器上没有服务器命中,菜单显示为“未定义”。
控制器代码
public class LHSMenuController : ApiController
{
private IRepo repo;
public LHSMenuController()
{
repo = new Repository();
}
[HttpGet]
public IEnumerable<LHSMenu> GetLHSMenu()
{
return this.repo.Menu;
}
}
答案 0 :(得分:2)
剑道菜单无法直接执行,但您可以使用数据源的更改方法并使用此功能创建菜单,请尝试以下操作:
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
注意:它是草稿,创建另一个迭代子&gt;的函数; sub>子项。
答案 1 :(得分:0)
您应该以菜单的json友好格式返回结果。试试这个:
[HttpGet]
public IEnumerable<LHSMenu> GetLHSMenu()
{
return Json(this.repo.Menu,JsonBehavoir.AllowGet);
}
答案 2 :(得分:0)
Kendo UI菜单目前不支持绑定到远程数据源。