以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这个错误提示怎么回事呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147128)

--  作者:fox-man
--  发布时间:2020/3/10 12:18:00
--  这个错误提示怎么回事呢?

DataColChanged

If e.DataCol.Id = "levelFULLId"
    If e.NewValue = Nothing Then
        e.DataRow("leve11Id") = Nothing
        e.DataRow("leve12Id") = Nothing
    Else
        Dim chrs() As Char = {","}
        Dim ary() As String = e.NewValue.split(chrs)
        e.DataRow("leve11Id") = ary(0)
        e.DataRow("leve12Id") = ary(1)        
    End If
End If
--------------------------------------------------------
详细错误信息:
Exception has been thrown by the target of an invocation.
Index was outside the bounds of the array.
详细错误信息:
调用的目标引发了异常。
索引超出数组的边界。
[此贴子已经被作者于2020/3/10 12:19:05编辑过]

--  作者:有点蓝
--  发布时间:2020/3/10 14:06:00
--  

DataColChanged

If e.DataCol.Id = "levelFULLId"
    If e.NewValue = Nothing Then
        e.DataRow("leve11Id") = Nothing
        e.DataRow("leve12Id") = Nothing
    Else
        Dim chrs() As Char = {","}
        Dim ary() As String = e.NewValue.split(chrs)
        e.DataRow("leve11Id") = ary(0)
if ary.length = 2 ‘如果数据 没有逗号,拆分这里就出错的’
        e.DataRow("leve12Id") = ary(1)      
end if  
    End If
End If

--  作者:fox-man
--  发布时间:2020/3/10 14:42:00
--  
怎么判断ary.length层级,并且对level进行正确赋值呢?
--  作者:有点蓝
--  发布时间:2020/3/10 14:46:00
--  
就是2楼的用法,要使用ary(1),就判断ary.length = 2,要使用ary(2),就判断ary.length = 3,....
--  作者:fox-man
--  发布时间:2020/3/10 14:52:00
--  
 If ary.length = 1
      e.DataRow("leve11Id") = ary(0) 
   elseIf ary.length = 2
      e.DataRow("leve12Id") = ary(1) 
   elseIf ary.length = 3
      e.DataRow("leve13Id") = ary(2) 
 End If

这样吗?这样的结果只有leve13Id有值,leve11Id和leve12Id没有值啊.

--  作者:有点蓝
--  发布时间:2020/3/10 14:56:00
--  
e.DataRow("leve11Id") = ary(0) 
If ary.length >= 2
      e.DataRow("leve12Id") = ary(1) 
end if
If ary.length >= 3
      e.DataRow("leve13Id") = ary(2) 
 End If

--  作者:fox-man
--  发布时间:2020/3/10 15:00:00
--  
谢谢,测试没问题.
[此贴子已经被作者于2020/3/10 15:18:06编辑过]