angularJs根据后台数据动态生成树形导航怎么做

angularJs根据后台数据动态生成树形导航怎么做,第1张

树形结构可以这样:对于每个节点,加一个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如何动态获取菜单栏中的菜单名并用树型表示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9455989.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存