绑定TelerikRadTreeView客户端我有一个javascript对象数组,我想用它来填充RadTreeView。除了为我的对象集合手动编写自己的绑定方法之外,我不知道如何从客户端实现这一点。我的javascript数组中的每个对象都有IdParentId值文本有没有办法从客户端的这个javascript数据结构自动填充整个树?我必须一一做吗?通过遍历我的数组并递归地沿着树向下走?我正在使用Web服务获取包含此数据的JSON对象,我想完全构建树,而不仅仅是在扩展节点上。显然,没有办法从客户端绑定整棵树。您最多可以做的是绑定第一级节点,当用户单击每个节点时,您可以填充子节点进行另一个Web方法调用。您的GetRootNodes方法可能如下所示:[WebMethod,ScriptMethod]publicRadTreeNodeData[]GetRootNodes(RadTreeNodeDatanode,objectcontext){列表结果=newList();foreach(productCategories.Rows中的DataRow行){RadTreeNodeDataitemData=newRadTreeNodeData();itemData.Text=row["标题"].ToString();itemData.Value=row["CategoryId"].ToString();如果(Convert.ToInt32(row["ChildrenCount"])>0){itemData.ExpandMode=TreeNodeExpandMode.WebService;}result.Add(itemData);}返回结果.ToArray();}PopulateChild客户端方法可以是这样的:functionPopulateChild(sender,args){vartreeView=$find('datesTree');varnodeText="";$.ajax({type:"POST",url:"../AcmeWebService.asmx/GetChildNodes",contentType:"application/json;charset=utf-8",dataType:"json",数据:"{'nodeText':'"+nodeText+"','nodeValue':'"+args.get_node().get_value()+"','param2':'"+treeView.get_allNodes()[0].get_value()+"'}",成功:function(msg){if(treeView!=null){treeView.跟踪变化();varparent=树视图。get_selectedNode()||树视图;var计数=父级。get_nodes().get_count();for(vari=0;i}andpopulatechildnodesonwebservicemethodcanbelikethis:[WebMethod,ScriptMethod]publicIEnumerableGetChildNodes(stringnodeText,stringnodeValue,intparam2){//用你的任何参数调用你的DAL从上面传入的IEnumerablenodes=...returnnodes;}注意0上面的方法不返回RadTreeNodeData数组,它可以是您自己的自定义对象的任何集合。GetRootNodes也是如此,就像我从Telerik那里得到的那样复制那个网站;)注意1:我有一个类似的场景,我使用这种技术最初加载第一级节点,然后在客户端单击以加载其他节点。我在这里发布的一些代码是我原始代码的精简版。我希望它有所帮助。根据文档,ClientNodes属性是只读的:RadTreeView客户端对象以上是C#学习教程:绑定TelerikRadTreeView客户端分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
