以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  为什么提示窗口会弹出四次  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=73784)

--  作者:guning007
--  发布时间:2015/8/26 15:29:00
--  为什么提示窗口会弹出四次

老师,您好。

我在某表的DataColChanging事件中加入了如下代码,目的是在点击【核准】复选框时首先判断是否角色有权限选中或者取消,如果有权限,然后弹出提示框,避免误操作。

如果在表格中直接点击【核准】复选框,一切工作正常。

但是我做了一个窗口,窗口中的【核准】复选框是绑定到表中的【核准】列的,如果在窗口中点击时,就会弹出多次避免误操作的提示框。
弹出的提示窗口中,如果选是,那么会再次弹出,继续选是,就不会在弹出。
弹出的提示窗口中,如果选择否,那么会再次弹出,继续选否,第三次弹出,继续选否,会第四次弹出,再次选否,就不会再弹出了。

麻烦老师帮忙,谢谢!

If e.DataCol.Name  = "核准"
        If e.DataRow("核准") = False Then
            If User.IsRole("QA核准") = False Then
                e.Cancel = True
            Else
                Dim Result As DialogResult
                Result = MessageBox.Show("注意 ! 此操作不可撤销 ! 您确认要进行核准吗 ? ", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
                If Result = DialogResult.No Then
                    e.Cancel = True
                End If
            End If
        ElseIf e.DataRow("核准") = True Then
            If User.IsRole("后台维护") = False AndAlso User.IsRole("QA审批") = False Then
                e.Cancel = True
            Else
                Dim Result As DialogResult
                Result = MessageBox.Show("注意 ! 此操作不可撤销 ! 您确认要进行核准吗 ? ", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
                If Result = DialogResult.No Then
                    e.Cancel = True
                End If
            End If
        End If
End If


--  作者:大红袍
--  发布时间:2015/8/26 16:28:00
--  

Systemready = False

If e.DataCol.Name  = "核准"
    If e.NewValue = False Then
        If User.IsRole("QA核准") = False Then
            e.Cancel = True
        Else
            Dim Result As DialogResult
            Result = MessageBox.Show("注意 ! 此操作不可撤销 ! 您确认要进行核准吗 ? ", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
            If Result = DialogResult.No Then
                e.Cancel = True
            End If
        End If
    ElseIf e.NewValue = True Then
        If User.IsRole("后台维护") = False AndAlso User.IsRole("QA审批") = False Then
            e.Cancel = True
        Else
            Dim Result As DialogResult
            Result = MessageBox.Show("注意 ! 此操作不可撤销 ! 您确认要进行核准吗 ? ", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
            If Result = DialogResult.No Then
                e.Cancel = True
            End If
        End If
    End If
End If
Systemready = True


--  作者:guning007
--  发布时间:2015/8/26 17:11:00
--  
我去测试一下,谢谢红老师。
--  作者:大红袍
--  发布时间:2015/8/26 17:28:00
--  

可以打开,你把bin文件夹删除看看

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150826172819.jpg
图片点击可在新窗口打开查看