以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树排序  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=86837)

--  作者:花开的声音
--  发布时间:2016/6/27 15:31:00
--  目录树排序
目录树排序,序号用abc。。。时,正常排序。但改为1、2、3、4.。。10、11时,10、11。。19等排到了2、3的前面,怎么处理这个问题。
--  作者:花开的声音
--  发布时间:2016/6/27 15:42:00
--  
这个是自动生成的字符1.2.3.4....19,如何在一个个位字符的前面加一个0.
--  作者:大红袍
--  发布时间:2016/6/27 15:48:00
--  

序号列,必须是数值列,才行。


--  作者:花开的声音
--  发布时间:2016/6/27 15:55:00
--  
那如果是数值列,怎么加。
--  作者:大红袍
--  发布时间:2016/6/27 16:00:00
--  

 具体你的问题,最好有实例。


--  作者:花开的声音
--  发布时间:2016/6/27 16:05:00
--  
好吧。红袍老师,我是参考用你的那个数字级码生成的示例来做了一个生成主管司法局窗口。要达到如图所示的效果
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160627160517.png
图片点击可在新窗口打开查看

如何修改那个保存到表的代码:

   Dim dt As DataTable = DataTables("主管司法局")
dt.DataRows.Clear
Dim dic As New Dictionary(of Integer, Integer)
Dim prevLevel As Integer = 0
For Each nd As WinForm.TreeNode In e.Form.Controls("TreeView1").AllNodes
    If nd.Level = 0 AndAlso dic.count > 0 Then
        Dim temp = dic(0)
        dic.Clear
        dic.Add(0, temp)
    End If
    
    If dic.ContainsKey(nd.Level) = False Then
        dic.Add(nd.Level, 1)
    Else
        dic(nd.Level) = dic(nd.Level) + 1
    End If
    For i As Integer = nd.level + 1 To prevLevel
        dic(i) = 0
    Next
    
    prevLevel = nd.Level
    Dim ndr As DataRow = dt.AddNew
    Dim str As String = ""
    For i As Integer = 0 To nd.Level
        str &= dic(i) & "\\"
    Next
    ndr("编号") = str.TrimEnd("\\")
    ndr("主管司法局") = nd.Text
Next
dt.Save
e.Form.Close

--  作者:大红袍
--  发布时间:2016/6/27 16:06:00
--  
str &= Format(dic(i), "00") & "\\"