以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]字符串里的Join(Separator,Values)这个语法怎么使用呢? (http://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编辑过]
|