Asp.net mvc Kendo UI TreeView虚拟化搜索

Asp.net mvc Kendo UI TreeView虚拟化搜索,asp.net-mvc,kendo-treeview,Asp.net Mvc,Kendo Treeview,我正在使用具有虚拟化功能的KendoUITreeView(ASP.NETMVC);这有助于我最初加载顶级,并根据需要加载更多级别 现在需要在树视图中包含搜索节点的“搜索”功能 不幸的是,我没有在我的树视图中预先加载所有节点来执行搜索;您能否建议是否有其他方法可以在TreeView中动态执行搜索 多谢各位 -nm我遇到了一个类似的问题,并通过实现两种控制器方法成功地解决了它 Controller.LoadNodes(int?parentId) Controller.SearchNodes(字符串

我正在使用具有虚拟化功能的KendoUITreeView(ASP.NETMVC);这有助于我最初加载顶级,并根据需要加载更多级别

现在需要在树视图中包含搜索节点的“搜索”功能

不幸的是,我没有在我的树视图中预先加载所有节点来执行搜索;您能否建议是否有其他方法可以在TreeView中动态执行搜索

多谢各位
-nm

我遇到了一个类似的问题,并通过实现两种控制器方法成功地解决了它

  • Controller.LoadNodes(int?parentId)
  • Controller.SearchNodes(字符串searchTerm)
LoadNodes将返回直接子节点的平面列表。而SearchNodes将返回匹配搜索词及其父项的嵌套列表

我的示例使用SQL Server备份并遵循以下步骤

在搜索按钮中设置好后,单击事件交换树视图的数据源。请注意,您必须根据Telerik论坛上题为“尝试在treeview上更改数据源时出错”的帖子,使用setDataSource方法设置数据源

函数扩展节点(节点){
返回$.map(节点,函数(x){
x、 扩展=x.children.length>0;
如果(x.expanded)
扩展节点(x.children);
返回x;
});
};
$(“#搜索btn”)。单击(函数(){
var searchText=$(“#searchText”).val();
var treeview=$(“#treeview”).data(“kendoTreeView”);
如果(searchText.trim()!=“”)
{
url=“Controller/SearchNodes?searchText=“+searchText;
data.setDataSource(新的kendo.data.hierarchycalDataSource({
运输:{
阅读:{
url:url,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”
},
parameterMap:功能(选项){
返回JSON.stringify(选项);
}
},
模式:{
解析:函数(响应){
返回扩展节点(响应);
},
型号:{
id:“节点id”,
儿童:“儿童”,
是的
}
}
}));
}
其他的
{
url=“Controller/LoadNodes”;
data.setDataSource(新的kendo.data.hierarchycalDataSource({
运输:{
阅读:{
url:url,
数据类型:“json”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”
},
parameterMap:功能(选项){
返回JSON.stringify(选项);
}
},
型号:{
id:“节点id”,
}
}
}));     
}
data.dataSource.read();
});