jquery - 将远程数据绑定(bind)到 Kendo Treeview

标签 jquery kendo-ui kendo-asp.net-mvc kendo-treeview

我试图将从 Controller 操作方法获得的值返回到 Kendo Treeview ,以将模块名称填充为 Kendo Treeview 中的父节点。

public ActionResult LoadTreeView([DataSourceRequest] DataSourceRequest request)
    {
        using (var countryvar = new TGSFMSSys_UserEntities())
        {
            IQueryable<Module> module = countryvar.Modules;
            DataSourceResult result = module.ToDataSourceResult(request, value => new Module
            {
                ModuleId = value.ModuleId,
                ModuleName = value.ModuleName

            });
            return Json(result, JsonRequestBehavior.AllowGet);
        }
    }

下面是我创建的 Kendo Treeview 的 Javascript 代码
<script>
    $("#treeview").kendoTreeView({
        checkboxes: {
            checkChildren: true
        },
        check: onCheck,
        dataSource:
        {
            transport: {
                read: '/MapModuleTask/LoadTreeView'
            }
        },
        dataTextField: 'ModuleName'
    });
</script>

最佳答案

请尝试使用以下代码片段。

Controller : HomeController.cs

public JsonResult LoadTreeView(int? id)
{
    List<Module> modules = new List<Module>();

    int temp = id.GetValueOrDefault();

    modules.Add(new Module() { ModuleId = 1 + temp, ModuleName = "Name1_" + temp , hasChildren = false });
    modules.Add(new Module() { ModuleId = 2 + temp, ModuleName = "Name2_" + temp, hasChildren = true });

    return Json(modules, JsonRequestBehavior.AllowGet);
}

型号:
public class Module
{
    public int ModuleId { get; set; }
    public string ModuleName { get; set; }
    public Boolean hasChildren  { get; set; }
}

查看:
<div id="treeview"></div>
<script>

    var datasource = new kendo.data.HierarchicalDataSource({
        transport: {
            read: function (options) {
                var id = options.data.ModuleId; 
                $.ajax({
                    url: '/Home/LoadTreeView',
                    dataType: "json",   
                    data: { id: id },
                    success: function (result) {
                         options.success(result);
                    },
                    error: function (result) {
                         options.error(result);
                    }
                });
            }
        },
        schema: {
            model: {
                id: "ModuleId",
                hasChildren: "hasChildren"
            }
        }
    });

    $("#treeview").kendoTreeView({
        checkboxes: {
            checkChildren: true
        },
        dataSource: datasource,
        dataTextField: 'ModuleName'
    });
</script>

让我知道是否有任何问题。

关于jquery - 将远程数据绑定(bind)到 Kendo Treeview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739745/

相关文章:

javascript - 带模板的 Angular ui bootstrap 弹出窗口

kendo-ui - 在 MVC4 中构建 Kendo 网格必须包含哪些文件

javascript - 将 HTML 文件作为选项卡动态添加到 Kendo TabStrip

javascript - Kendo UI Scheduler - 如何刷新/显示隐藏/过滤资源列表

javascript - jQuery-bootgrid - 预选 rowCount

javascript - 滚动时尝试使用 jquery 使内容淡入

javascript - 粘性横幅不起作用

javascript - 剑道网格选择焦点上的单元格数据

javascript - 项目是 unfiend 在 Kendo Grid 组中

javascript - 是否可以在 Kendo Panelbar 标题上添加 Kendo 菜单?