以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]字符串里的Join(Separator,Values)这个语法怎么使用呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=145115)

--  作者:我的碗里有个晋晋
--  发布时间:2020/1/8 23:23:00
--  [求助]字符串里的Join(Separator,Values)这个语法怎么使用呢?
以下是datacolchanging中的代码:
Select Case e.DataCol.Name
    Case "成员"
        If e.NewValue IsNot Nothing Then  \'通过复选框选中一个或多个成员,各成员间通过逗号分隔,成员的值为数字
            Dim dw As String = e.NewValue
            Dim dws() As String
            dws = dw.Split(" , ")     \'将字符串转化为数组
            If dws.Length = 1 Then
                Dim dr1 As DataRow = DataTables("成员表").Find("值 =\'" & e.NewValue & "\'")  \'找到该成员值对应的名称
                e.NewValue = dr1("成员")  \'返回该成员名称
            Else If dws.Length > 1 Then
                Array.Sort( dws )         \'因为成员的值为数字所以可以直接通过数组排序
                Dim a() As String
                Dim b As String
                For i As Integer = 0 To dws.Length - 1
                    Dim dr As DataRow = DataTables("成员表").Find("值 =\'" & dws(i) & "\'")  \'再按排序后的成员值的顺序找到个每个值对应的成员名称
                    a(i) = dr("成员")       \'将根据值排好顺序的成员名称返回到一个数组中
                Next
                b = a.Join( ",", Parts)     \'将数组转化为字符串     这个函数怎么使用呢?一直提示我“Parts is not declared”帮助文件里只有一个例子,不知道怎么使用啊,求大神帮忙,谢谢!
                e.NewValue = b              \'显示排序后的成员      
            End If
        End If
End Select
[此贴子已经被作者于2020/1/8 23:30:18编辑过]

--  作者:有点蓝
--  发布时间:2020/1/9 9:19:00
--  
b = a.Join( ",", a) 

其实不用那么麻烦吧
Select Case e.DataCol.Name
    Case "成员"
        If e.NewValue > "" Then  \'通过复选框选中一个或多个成员,各成员间通过逗号分隔,成员的值为数字
            Dim str As String = DataTables("成员表").GetComboListString("成员","值 in (\'" & e.NewValue.replace(",","\',\'") & "\')")
            e.NewValue = str.Replace("|",",")
        End If
End Select

--  作者:我的碗里有个晋晋
--  发布时间:2020/1/9 14:10:00
--  
         谢谢大神答疑,GetComboListString,in,replace搭配的太巧妙了,不过这句代码还少了个排序的参数
       再次感谢大神帮我完美解决问题。

 Dim str As String = DataTables("成员表").GetComboListString("成员","值 in (\'" & e.NewValue.replace(",","\',\'") & "\')" ,“值”)
[此贴子已经被作者于2020/1/9 14:10:28编辑过]