C# 如何在KendoUITreeView中加载以下HTTP响应?
它只加载父节点,但我想使每个节点的通知成为树的子项 应该是这样的: 测试120 -3298 -983932 测试2 40 -ABCDC# 如何在KendoUITreeView中加载以下HTTP响应?,c#,javascript,jquery,asp.net,kendo-ui,C#,Javascript,Jquery,Asp.net,Kendo Ui,它只加载父节点,但我想使每个节点的通知成为树的子项 应该是这样的: 测试120 -3298 -983932 测试2 40 -ABCD -983932我已经解决了这个问题 以下是脚本代码: var notificationTypes = new kendo.data.HierarchicalDataSource({ transport: { read: { url: "http:
-983932我已经解决了这个问题 以下是脚本代码:
var notificationTypes = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "http://..."
}
},
schema: {
model: {
notificationType: "notificationType",
notifications: "notifications",
children: "notifications",
string: "string",
hasChildren: true
}
}
});
$("#treeview").kendoTreeView({
dataSource: notificationTypes,
checkboxes: {
checkChildren: true
},
dataTextField: ["notificationType", "notifications"]
});
下面是API:
<script language="javascript" type="text/javascript">
$(function()
{
var data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "../api/notifications/byuserid/10078261",
contentType: "application/json"
}
},
schema: {
model: {
children: "notifications"
}
}
});
$("#treeview").kendoTreeView({
dataSource: data,
checkboxes: {
checkChildren: true
},
dataTextField: ["notificationType", "NotificationDesc"]
});
});
</script>
我认为您缺少模式中的子对象。你试过使用KendoUI服务器包装器吗?让生活变得更轻松,你能给我举个例子吗?我现在没有例子,因为我正在旅行,无法访问代码!如果你有帐户,你可以访问KendoUI网站并下载最新的二进制文件。当我访问代码库时,我将尝试发布一些示例代码。
<script language="javascript" type="text/javascript">
$(function()
{
var data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "../api/notifications/byuserid/10078261",
contentType: "application/json"
}
},
schema: {
model: {
children: "notifications"
}
}
});
$("#treeview").kendoTreeView({
dataSource: data,
checkboxes: {
checkChildren: true
},
dataTextField: ["notificationType", "NotificationDesc"]
});
});
</script>
namespace X.Controllers
{
public class NotificationsController : ApiController
{
public List<Node> getNotifications(int id)
{
var bo = new HomeBO();
var list = bo.GetNotificationsForUser(id);
var notificationTreeNodes = (from GBLNotifications n in list
where n.NotificationCount != 0
select new NotificationTreeNode(n)).ToList();
var li = notificationTreeNodes.Select(no => new Node
{
notificationType = no.NotificationNode.NotificationType + " " + "(" + no.NotificationNode.NotificationCount + ")", notifications = bo.GetNotificationsForUser(id, no.NotificationNode.NotificationTypeId).Cast<GBLNotifications>().Select(item => new Notification
{
ID = item.NotificationId, NotificationDesc = item.NotificationDescription
}).ToList()
}).ToList();
return li;
}
}
public class Node
{
public List<Notification> notifications;
public string notificationType
{
get;
set;
}
}
public class Notification
{
public int ID
{
get;
set;
}
public string NotificationDesc
{
get;
set;
}
}
}