各位大侠,请帮忙分析一下以下代码,想在DropDownList中用递归法生成仿树型菜单

lyjsd 2008-01-14 08:30:32
代码如下:

Sub myTree(ByVal ddl As DropDownList, ByVal tmpDataTable As DataTable, ByVal tmpFilterColumn As String, ByVal tmpFilterValue As String, Optional ByVal Space As String = "")
Dim tmpDataView As DataView = tmpDataTable.DefaultView
tmpDataView.RowFilter = tmpFilterColumn & "='" & tmpFilterValue & "'"
Response.Write(tmpFilterValue & " ")
Dim s As Integer = tmpDataView.Count
If s > 0 Then
For i As Integer = 0 To s - 1
ddl.Items.Add(New ListItem(Space & tmpDataView(i)("Name").ToString, tmpDataView(i)("ID").ToString))
myTree(ddl, tmpDataTable, tmpFilterColumn, tmpDataView(i)("ID").ToString, Space & " ")
Next
End If
End Sub

其中tmpDataTable用数据表,里面字段为ID,ParentID,Name
运行时老是出现“索引 1 不是非负数且小于总行数。”的错误
请各位高手帮忙分析一下,谢了!
...全文
62 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyjsd 2008-01-15
  • 打赏
  • 举报
回复
经过尝试,将 Dim tmpDataView As DataView = tmpDataTable.DefaultView
改为 Dim tmpDataView As DataView = tmpDataTable.Copy.DefaultView
就可以了,各位大侠能不能给解释一下这是为什么?
还有没有其他方法生成类似的效果?
cloudgamer 2008-01-15
  • 打赏
  • 举报
回复
索引个数与参数个数不同,如下:11个索引,10个参数
string str=String.Format("INSERT INTO AD_CARVEOUT VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",this.UserName,this.Name,this.Sex,this.Age,this.Tel,this.Email,this.Area,this.Money,this.Trade,this.ProjectSummary);

diy520

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧