Foxtable(狐表)用户栏目专家坐堂 → 请教一个行状态的问题


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

主题:请教一个行状态的问题

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


加好友 发短信
等级:二尾狐 帖子:560 积分:4273 威望:0 精华:0 注册:2014/6/12 19:15:00
请教一个行状态的问题  发帖心情 Post By:2014/9/3 14:24:00 [只看该作者]

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
        If r.Locked <> True Then
            r.Locked = True
        End If
        If e.Table.Current.DataRow.RowState <> DataRowState.Unchanged Then
            r.Save() '保存之
            MessageBox.Show("保存了")
        End If
    End If
End If

这段代码不能为啥不能自动保存?
难道这条语句 r.Locked = True
不会改变行状态?(已确定行没被锁定,这条语句执行后已执行了锁定操作)


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/3 14:26:00 [只看该作者]

上例子看看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/3 14:31:00 [只看该作者]

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
        r.Locked = True
        r.Save() '保存之
        MessageBox.Show("保存了")
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:560 积分:4273 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/9/3 14:32:00 [只看该作者]

上述代码在 afterSelChange事件中
因为是SQL Server数据库,没法上代码啊

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/9/3 14:33:00 [只看该作者]

用3楼的代码

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


加好友 发短信
等级:二尾狐 帖子:560 积分:4273 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/9/3 14:35:00 [只看该作者]

三楼的肯定是可以,我加了判断只是为了降低一点不不要的损耗

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/9/3 14:48:00 [只看该作者]

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
        If r.Locked <> True Then
            r.Locked = True
        End If
        If r.DataRow.RowState <> DataRowState.Unchanged Then
            r.Save() '保存之
            MessageBox.Show("保存了")
        End If
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:560 积分:4273 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/9/3 15:28:00 [只看该作者]

ok了,啥原因啊

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


加好友 发短信
等级:二尾狐 帖子:560 积分:4273 威望:0 精华:0 注册:2014/6/12 19:15:00
  发帖心情 Post By:2014/9/3 15:30:00 [只看该作者]

 If r.DataRow.RowState <> DataRowState.Unchanged Then

我原来取得是新选择的行的状态
而不是原来选择行的状态

明白了,谢谢各位版主

 回到顶部