
树形结构可以这样:对于每个节点,加一个filed叫做children,其值是一个array,含有所有子节点。{data:'1',children:[{data:'2',children:[]},{data:'3',children:[]}]}
treepanel部分的代码我就不写了,下面是store部分的代码。
var tree_store = Extcreate('ExtdataTreeStore',{root: {
id: 0,
text: "根节点"
}
proxy: {
type: "ajax",
url: "tree_storephp"
}
});
tree_storephp代码说明:
每次点击树形菜单中的节点时,实际上是访问 tree_storephpnode=id 这个路径其中对应当前节点id的值。
如上面例子中,当点击根节点时,相当于访问tree_storephpnode=0
因此,tree_storephp只需要根据地址栏参数node,显示对应子节点,并转换成json即可。
tree_store的json的格式建议查询官方文档。
添加:(先在加一个contextMenu,再它的添加子菜单的click事件编程)
Try
’使TreeView可以被编辑
TreeView1LabelEdit = True
‘判断你是不是选定的是不可编辑的节点,我这里工种节点不可以被编辑,只有工种下级的
各个工种名称可以被编辑
If Trim(TreeView1SelectedNodeText) = "工种" Then
‘添加节点
AddNode = New TreeNode("请输入新工种名字")
TreeView1SelectedNodeNodesAdd(AddNode)
TreeView1ExpandAll()
AddNodeBeginEdit()
TreeView1LabelEdit = True
NodeAdded = True
End If
Catch err As Exception
MsgBox(errToString)
End Try
删除与添加类似,只是如果你的节点名字从其他处(如数据库)得来,那么你还需要更新数据库
编辑:
Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, ByVal e As SystemWindowsFormsNodeLabelEditEventArgs) Handles TreeView1BeforeLabelEdit
TreeView1LabelEdit = True ‘使可以编辑
AddNode = TreeView1SelectedNode
End Sub
Private Sub TreeView1_AfterLabelEdit(ByVal sender As Object, ByVal e As SystemwindowsFormsNodeLabelEditEventArgs) Handles TreeView1AfterLabelEdit
Try
‘此时你改完了节点名字
TreeView1SelectedNodeEndEdit(True)
If eLabel Is Nothing Then
'do nothing
ElseIf eNodeText = "工种" Then ‘工种不能改
eCancelEdit() = True
‘eNodeText ,eLabelToString 一个是改前的名字一个是该后的名字,具体哪个对
哪个请查MSDN
ElseIf Trim(eNodeText) <> "工种" And eNodeText <> eLabelToString Then
If MsgBox("此 *** 作会导致当前工种中的所有人员的工种都被更改,是否确定?", MsgBoxStyleYesNo + MsgBoxStyleInformation, "警告") = MsgBoxResultYes Then
。。。。 ‘我的更改
MsgBox("更改成功!", MsgBoxStyleOKOnly, "提示")
'Call InitTree() ‘有时要重新把treeview初始化一遍,视需求定
End If
End If
Catch err As Exception
MsgBox(errToString)
End Try
End Sub
其他:
挡treeview得到焦点时你可以使用ContextMenu,反之ContextMenu禁用
Private Sub TreeView1_GotFocus(ByVal sender As Object, ByVal e As SystemEventArgs) Handles TreeView1GotFocus
TreeView1ContextMenu = ContextMenu1
End Sub
Private Sub TreeView1_LostFocus(ByVal sender As Object, ByVal e As SystemEventArgs) Handles TreeView1LostFocus
TreeView1ContextMenu = Nothing
End Sub
注意:这里没有在ContextMenu菜单添加“更改”项,而是直接更改:即左键单击节点表示
选中,再单击一下就可以编辑了,更改之后单击他处就完成更改,和你在windows中更改文
件名字相似。
以上就是关于angularJs根据后台数据动态生成树形导航怎么做全部的内容,包括:angularJs根据后台数据动态生成树形导航怎么做、Extjs 的树形结构、动态加载子节点、VB.net如何动态获取菜单栏中的菜单名并用树型表示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)