如何使用远程数据将超链接配置到我的Kendo UI TreeView中?

时间:2013-08-01 22:04:58

标签: c# javascript asp.net kendo-ui kendo-treeview

这是我的树视图:

function CreateNotificationTree(UserId)
{
    var data = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: "../api/notifications/byuserid/" + UserId,
                contentType: "application/json"
            }
        },
        schema: {
            model: {
                children: "notifications"
            }
        }
    });

    $("#treeview").kendoTreeView({
        dataSource: data,
        loadOnDemand: true,
        dataUrlField: "LinksTo",
        checkboxes: {
            checkChildren: true
        },
        dataTextField: ["notificationType", "NotificationDesc"]
    });
}

我添加了配置“dataUrlField”,但我不确定如何将dataTextField“NotificationDesc”配置为在API中找到的超链接。

API "../api/notifications/byuserid/"带回树视图的数据以及我需要的链接。以下是API返回的内容:

<ArrayOfNode xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http....WebUI.Controllers" debug="true">
<script id="FirebugLite" firebugIgnore="true" extension="Chrome"/>
<Node>
   <notificationType>Edit Items</notificationType>
      <notifications>
         <Notification>
            <ActionPageName>abc/ViewMembers.aspx</ActionPageName>
            <ID>10285433</ID>
            <NotificationDesc>2013 project</NotificationDesc>
            <NotificationLink>
                 //the link I need is here
            </NotificationLink>
            <Params>...</Params>
            </Notification>
...

1 个答案:

答案 0 :(得分:3)

我想出了怎么做:

$("#treeview").kendoTreeView({
        dataSource: data,
        loadOnDemand: true,
        dataUrlField: "LinksTo",
        checkboxes: {
            checkChildren: true
        },
        dataTextField: ["notificationType", "NotificationDesc"],
        select: treeviewSelect
    });

function treeviewSelect(e)
    {
        var node = this.dataItem(e.node);
        window.open(node.NotificationLink, "_self");
    }