以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  逻辑列勾选的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120380)

--  作者:蓝蚂蚁
--  发布时间:2018/6/13 23:08:00
--  逻辑列勾选的问题

DataColChanging代码:

Select Case e.DataCol.Name
    Case "补计划_补否"
        If  e.OldValue=True Then
            If MessageBox.Show("确定---取消勾选吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then  \'原来为true
                e.NewValue=False
                e.DataRow("补计划_数量")=Nothing
            Else
                e.Cancel=True
            End If
        Else
            If MessageBox.Show("确定勾选吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then   \'原来为false
                e.NewValue=True
            Else
                e.Cancel=True
            End If
        End If
End Select
上面的代码本意是:在原有的数据上进行勾选或取消勾选。
遇到的问题:当我新增一行时,也会执行上面的代码 ,如何在新增行时不执行上面的代码?

--  作者:有点甜
--  发布时间:2018/6/13 23:38:00
--  

加上代码判读

 

Select Case e.DataCol.Name
    Case "补计划_补否"
        If e.oldvalue <> Nothing Then
            If  e.OldValue=True Then
                If MessageBox.Show("确定---取消勾选吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then  \'原来为true
                    e.NewValue=False
                    e.DataRow("补计划_数量")=Nothing
                Else
                    e.Cancel=True
                End If
            Else
                If MessageBox.Show("确定勾选吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)=DialogResult.Yes Then   \'原来为false
                    e.NewValue=True
                Else
                    e.Cancel=True
                End If
            End If
        end if
End Select