以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教甜大师  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53473)

--  作者:hbhb
--  发布时间:2014/7/8 18:55:00
--  请教甜大师
讨教一下:窗口中一目录树,有一节点标题为“一、中国” ,希望修改此节点后任然显示“1、中华人民共和国”,前面的“一、”不允许随意更改?
--  作者:有点甜
--  发布时间:2014/7/8 19:05:00
--  
 不明白你的意思,例子说明。
--  作者:hbhb
--  发布时间:2014/7/8 19:34:00
--  
点击重命名修改“一、东北”标题,希望如果客户修改为东北地区后,仍自动显示“一、东北地区”,也就是说如果客户没有输入“一、”,系统自动添加,如果客户输入了“一、”,也显示“一、”
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip


--  作者:有点甜
--  发布时间:2014/7/8 20:16:00
--  

 代码

 

\'\'\'

If e.NewText = "" Then
    e.Cancel = True
    Return
End If
Dim pth() As String = e.Node.FullPath.Split("\\")

Dim xh As String = e.Node.Text.Split("、")(0)
Dim idx As Integer = e.NewText.IndexOf("、")
If idx = -1 Then
    e.Node.Name = xh & "、" & e.NewText
Else
    e.Node.Name = xh & "、" & e.NewText.SubString(idx+1)
End If

Select Case e.node.Level
    Case 0
        DataTables("表A").ReplaceFor("区域", e.Node.Name,"区域 = \'" & pth(0) & "\'")
End Select

e.Node.Text = e.node.Name


--  作者:hbhb
--  发布时间:2014/7/8 20:55:00
--  
谢谢!版主就是版主

请问:为何目录树的节点标题不改?
--  作者:有点甜
--  发布时间:2014/7/8 21:07:00
--  
以下是引用hbhb在2014-7-8 20:55:00的发言:
谢谢!版主就是版主

请问:为何目录树的节点标题不改?

 

节点标题和重命名无关。


--  作者:hbhb
--  发布时间:2014/7/8 21:30:00
--  

Text

字符型,返回或设置节点标题。

那text为何不能设置标题?

以上代码换成 e.Node.text = xh & "、" & e.NewText

为何就不行?

4、实际上,重命名节点修改的只是节点标题,而不是节点名称,所以我们还需要在AfterEditNode事件中设置代码,使得节点名称和标题保持一致:


--  作者:有点甜
--  发布时间:2014/7/8 21:35:00
--  

写错了。

[此贴子已经被作者于2014-7-8 21:39:38编辑过]

--  作者:有点甜
--  发布时间:2014/7/8 21:45:00
--  

 哦,忘记在最后加一个 e.cancel = true 了

 

\'\'\'

If e.NewText = "" Then
    e.Cancel = True
    Return
End If
Dim pth() As String = e.Node.FullPath.Split("\\")

Dim xh As String = e.Node.Text.Split("、")(0)
Dim idx As Integer = e.NewText.IndexOf("、")
If idx = -1 Then
    e.Node.Name = xh & "、" & e.NewText
Else
    e.Node.Name = xh & "、" & e.NewText.SubString(idx+1)
End If

Select Case e.node.Level
    Case 0
        DataTables("表A").ReplaceFor("区域", e.Node.Name,"区域 = \'" & pth(0) & "\'")
End Select

e.Node.Text = e.node.Name
e.Cancel = True


--  作者:hbhb
--  发布时间:2014/7/8 22:13:00
--  
十分的感谢!