【问题标题】:kendo Treelist keeps telling no records to Display剑道树列表一直告诉没有记录显示
【发布时间】:2015-01-18 22:58:01
【问题描述】:

我打算使用 Telerik 的一些剑道控件,并开始使用 Treelist 控件。我正在使用 Visual Studio 2013 VB 或 C# 执行此操作。

计划是创建一个发送一些(序列化)数据的 Web 服务,并且用户必须手动按下一个按钮,该按钮链接到为数据发布的 $Ajax 请求。该数据应传递到树列表。

但无论我尝试什么,它都会告诉我:No Records to Display

问题:

1 为什么我提供的示例不起作用。我几乎从字面上复制了一个演示。

2 您是否需要单独的数据源,或者也可以将数据直接放入树列表中?

提前致谢。

瑞克(荷兰)

示例:

`<script type="text/javascript">
 $(document).ready(function () {
      var dataSource = new kendo.data.TreeListDataSource({
         data: [
             { "Item": "Item0", "id": 0, "ParentId": null },
             { "Item": "Item1", "id": 1, "ParentId": 0 },
             { "Item": "Item2", "id": 2, "ParentId": 1 },
             { "Item": "Item3", "id": 3, "ParentId": 1 },
             { "Item": "Item4", "id": 4, "ParentId": null },
             { "Item": "Item5", "id": 5, "ParentId": null },
             { "Item": "Item6", "id": 6, "ParentId": 5 },
             { "Item": "Item7", "id": 7, "ParentId": 5 },
             { "Item": "Item8", "id": 8, "ParentId": 7 },
             { "Item": "Item9", "id": 9, "ParentId": 7 }
         ],
         schema: {
             model: {
                 id: "id",
                 expanded: true
             }
         }
     });

     $("#treelist").kendoTreeList({
         dataSource: dataSource,
         height: 540,
         columns: [
             { field: "Item" },
             { field: "id" },
             { field: "ParentId" }
         ]
     });
 });

</script>

【问题讨论】:

    标签: kendo-ui telerik treelist kendo-treelist


    【解决方案1】:

    如果它是顶级记录,parentId 也需要为 null。这真的让我大吃一惊。

    【讨论】:

    • 这解决了我的问题,非常重要。如果顶层记录的 parentId 不为 null,即使其他所有内容都正确,它也会显示 No Records To Display。
    【解决方案2】:

    @user4659712 是的,您可以定义架构。只要您通过架构告诉 parentId 就可以是任何东西:

         vm.treeListDataSource = new kendo.data.TreeListDataSource({
             data: organizations,
             schema: {
                 model: {
                     id: "Id",
                     fields: {
                         Id: { type: "number", nullable: false },
                         parentId: { field: "OverliggendeId", nullable: true }
                     },
                     expanded: true
                 }
             },
             pageSize: 20
         });
    

    【讨论】:

    • 由于某种原因,使用架构映射“parentId”字段不起作用,我们将不胜感激。
    • 在我尝试时为我工作。要使用上面的数据,只需更改 parentId 'field'。
    【解决方案3】:

    这归结为一个简单的拼写错误,“ParentId”需要是 parentId(注意小写 p)。

    查看此道场以获取工作版本。

    http://dojo.telerik.com/uWaSO

    我以前犯过这个错误。

    【讨论】:

      【解决方案4】:

      不要忘记模型定义中的“parentId”字段。我们不必以这种方式更改 JSON 属性(ParentId 也需要在字段中进行描述):

      var dataSource = new kendo.data.TreeListDataSource({
              data: [
                  { Id: 1, Name: "test", ParentId: null },
                  { Id: 2, Name: "test 2", ParentId: 1 }
              ],
              schema: {
                  model: {
                      id: "Id",
                      parentId: "ParentId",
                      fields: {
                          Name: { field: "Name", type: "string" },
                          StoreCount: { field: "StoreCount", type: "number" },
                          ParentId: { field: "ParentId", nullable: true }
                      },
                      expanded: true
                  }
              }
          });
      

      【讨论】:

      • 因此,真正的关键是在模式的“字段”中定义自定义父 ID(在本例中为“ParentId”)属性的字段定义。我错过了定义它。所以,设置 ParentId: { field: "ParentId", nullable: true } 对我有用。
      【解决方案5】:

      有谁知道您是否可以指定一个具有不同名称的数据库列作为 parentid?比如我的表有node_id和parent_node_id。

      【讨论】:

        猜你喜欢
        • 2019-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        相关资源
        最近更新 更多