以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62043)

--  作者:liujywwy
--  发布时间:2014/12/24 16:00:00
--  [求助]

.NET Framework 版本:2.0.50727.8009
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,BUG研发查询修改系统,TreeView1,NodeMouseDoubleClick
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

这个问题是不是一开始没有加载数据导致的?我是想不论做什么操作一开始先全部加载数据,然后再根据提交进行筛选,请帮我看看哪里出问题了?

AfterLoad代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Tables("BUG研发表").sort = "BUG_ID DESC"
Dim t1 As WinForm.TreeView
t1 =e.Form.Controls("TreeView1")
t1.BuildTree("BUG研发表", "研发组长|模块维护人")
t1.Nodes.Insert("显示所有研发的BUG",0)
Dim t2 As WinForm.TreeView = e.Form.Controls("TreeView2")
t2.CreateTree("BUG研发表","怀疑模块")
t2.Nodes.Insert("显示所有模块的BUG",0)
Dim t3 As WinForm.TreeView = e.Form.Controls("TreeView3")
t3.CreateTree("BUG研发表","测试机型")
t3.Nodes.Insert("显示所有机型的BUG",0)
Dim t4 As WinForm.TreeView = e.Form.Controls("TreeView4")
t4.CreateTree("BUG研发表","测试项目")
t4.Nodes.Insert("显示所有项目的BUG",0)

 

TopicLinkClick代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Select  Case e.Link.Name
    Case  "待我解决的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = \'待解决\' and 模块维护人 = \'" & user.name & "\'"
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
    Case "我已更新的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = \'已更新\' and 模块维护人 = \'" & user.name & "\'"       
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
    Case "我已解决的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = \'已解决\' and 模块维护人 = \'" & user.name & "\'"       
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
End Select

 

 

NodeMouseDoubleClick代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Dim Filter As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "显示所有研发的BUG" Then
    Select Case e.Node.Level
        Case 1
            Filter = "[模块维护人] = \'" & dr("模块维护人") & "\' "
    End Select
End If
DataTables("BUG研发表").loadFilter = Filter
DataTables("BUG研发表").Load()


--  作者:有点甜
--  发布时间:2014/12/24 16:05:00
--  

 这句代码有问题,重新load表之后,不能再用DataRow。你直接根据e.Node.Text去写代码吧

 

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行


--  作者:liujywwy
--  发布时间:2014/12/24 16:22:00
--  
以下是引用有点甜在2014-12-24 16:05:00的发言:

 这句代码有问题,重新load表之后,不能再用DataRow。你直接根据e.Node.Text去写代码吧

 

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行

重新load表之后,不能再用DataRow?

重新load就是让它加载全部数据,然后筛选出对应的行datarow。

我还是没有弄懂这个问题。

你直接根据e.Node.Text去写代码吧------怎么写呢?请帮忙。


--  作者:有点甜
--  发布时间:2014/12/24 17:48:00
--  

比如

 

Filter = "[模块维护人] = \'" & e.Node.Text & "\' "