Foxtable(狐表)用户栏目专家坐堂 → [求助]目录树追加了新项,Datarow出现问题


  共有1981人关注过本帖树形打印复制链接

主题:[求助]目录树追加了新项,Datarow出现问题

帅哥哟,离线,有人找我吗?
sunsenfeng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
[求助]目录树追加了新项,Datarow出现问题  发帖心情 Post By:2015/12/28 14:16:00 [只看该作者]

Dim tr As WinForm.TreeView
tr = e.Form.Controls("TreeView1")
If tr.SelectedNode.DataRow("批准")<>"" Then -------> 代码出现问题: 未将对象引用设置到对象的实例。

    Messagebox.Show("已经批准,无需重复操作!")
Else
    If user.group="总经理" Then
        tr.SelectedNode.DataRow("批准")=User.Name
        tr.SelectedNode.DataRow("批准日期")=Date.Today
    Else
        Messagebox.Show("总经理才有权限批准,不能进行超越权限的操作!")
    End If
End If

 

请老师们指点,问题出在哪里?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 14:43:00 [只看该作者]

你新增项的时候,datarow是不会帮你绑定的。你可以不操作。

 

If tr.SelectedNode.DataRow Is Nothing Then

    return

End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/28 14:44:00 [只看该作者]

或者是,你新增的时候记录一下主键

 

节点.tag = 新增行("_Identify")

 

然后,如是tr.SelectedNode.DataRow Is Nothing的情况,就根据tag去查找那行数据。


 回到顶部
帅哥哟,离线,有人找我吗?
sunsenfeng
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2015/12/29 8:05:00 [只看该作者]

谢谢大红袍老师
主要就是追加了新项,目录树就和表不对应了吧?就不能用e.selectednode.datarow了.
我的想法是重新加载以下目录树,提前保存一下全路径.但我想知道,让这一项再次展开
的最佳方法是什么?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/12/29 8:45:00 [只看该作者]

只能按 全路径逐项 展开

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/29 9:12:00 [只看该作者]

没必要重新生成一次。

 

你新增的时候记录一下主键

 

节点.tag = 新增行("_Identify")

 

然后,如是tr.SelectedNode.DataRow Is Nothing的情况,就根据tag去查找那行数据。


 回到顶部
帅哥哟,离线,有人找我吗?
sunsenfeng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2015/12/29 9:21:00 [只看该作者]

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
tr.CreateTree("类别编码", "类别名称")

大红袍老师,以上为目录树生成,能根据这个给个具体的例子吗?
节点.tag = 新增行("_Identify") 没有用过,不太明白

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/29 9:40:00 [只看该作者]

Dim nr As Row = Tables("表A").AddNew

Dim nd As WinForm.TreeNode = tr.Nodes.Add("12345")

 

nd.tag = nr("_Identify")


 回到顶部
帅哥哟,离线,有人找我吗?
sunsenfeng
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2015/12/29 9:46:00 [只看该作者]

谢谢老师

 回到顶部