以文本方式查看主题 - 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编辑过]
|