【问题标题】:e.slice is not a function in ASP.NETe.slice 不是 ASP.NET 中的函数
【发布时间】:2016-02-15 13:36:13
【问题描述】:

我有一个 asp.net 应用程序,其中我在 aspx 页面中有 kendo ui 树视图。准备好文档后,我在 aspx 页面中为数据调用一个方法。剑道树视图没有动态加载数据。它只显示加载指示器。当我们在 aspx 页面本身中提供相同的 json 数据时,它可以正常工作。

这里是代码

[System.Web.Services.WebMethod]
public static string MakeTreeData()
{
   return "[{ text: \"Node1\", items: [{text:\"Child1\"},{text:\"Child2\"},{text:\"Child3\"}]}]";
}

脚本

var $jQuery2_1 = jQuery.noConflict(true);
$jQuery2_1(document).ready(function () {
        $jQuery2_1.ajax({ url: "Default.aspx/MakeTreeData",
            contentType: "application/json; charset=utf-8",
            type: "post",
            success: function (result) {
                var viewModel = new kendo.data.HierarchicalDataSource({
                    data: JSON.parse(result.d),
                    schema: {
                        model: {
                            children: "items"
                        }
                    }
                });
                $jQuery2_1("#treeview").kendoTreeView({
                    dataSource: viewModel,
                    dataTextField: "text"
                });
            },
            error: function (e) {
                console.log(e);
            }
        });
    });

谢谢

【问题讨论】:

  • e.slice 出现在您的代码中的什么位置?
  • @Alex 当我将视图模型设置为数据源时,会出现 javascript 错误。 $jQuery2_1("#treeview").kendoTreeView({ dataSource: viewModel, dataTextField: "text" });

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


【解决方案1】:

像下面这样更新方法和脚本解决了这个问题

MakeTreeData

[System.Web.Services.WebMethod]
public static string MakeTreeData()
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    var parentNodes = new List<Node>();
    var parent = new Node() { Id = "1", Text = "Parent 1", Nodes = new List<Node>() };
    var child = new Node() { Id = "2", Text = "Child 1", Nodes = new List<Node>() };
    parent.Nodes.Add(child);
    parentNodes.Add(parent);
    return js.Serialize(parentNodes);
}

脚本

<div class="demo-section k-content">
    <div id="treeview"></div>
</div>
<script>
    $(document).ready(function () {
        $.ajax({
            url: "Default.aspx/MakeTreeData",
            contentType: "application/json; charset=utf-8",
            type: "POST",
            success: function (result) {
                var jsonData = JSON.parse(result.d);
                var viewModel = new kendo.data.HierarchicalDataSource({
                    data: JSON.parse(result.d),
                    schema: {
                        model: {
                            children: "Nodes"
                        }
                    }
                });
                $("#treeview").kendoTreeView({
                    dataSource: viewModel,
                    dataTextField: "Text"
                });
            },
            error: function (e) {
                console.log(e);
            }
        });
    });
</script>

【讨论】:

    猜你喜欢
    • 2021-02-17
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多