以文本方式查看主题

-  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=98123)

--  作者:lzzhx
--  发布时间:2017/3/24 15:46:00
--  错误删除问题
请都老师:
      某个数据列设为用下拉列表输入,且不能输入列表外的内容,输入正常,在编辑状态下也不能输入数据和删除数据,但当点击到该列当前单元格后,按delete键却能将单元格内容整个删除,请问如何解决这个问题,实现不能删除,只能选择输入?

--  作者:有点色
--  发布时间:2017/3/24 15:50:00
--  

方法一:可以写KeyDown事件,如果是delete键,就e.cancel = true

 

方法二:DataColChanging事件,禁止输入空值咯。


--  作者:lzzhx
--  发布时间:2017/3/24 15:57:00
--  
如果把代码写在全局表的DataColChanging事件中,如何先判断是”设为用下拉列表输入,且不能输入列表外的内容“,然后再禁止输入空值?
--  作者:lzzhx
--  发布时间:2017/3/24 16:01:00
--  
AllowDirectType属性只有table有,datatable没有
--  作者:有点色
--  发布时间:2017/3/24 16:11:00
--  
 直接判断 e.NewValue 是否在你的下拉列表里面,如果在就允许,如果不在,就e.Cancel = true
--  作者:lzzhx
--  发布时间:2017/3/27 11:49:00
--  
在全局表事件Dataacolachanging中加入如下代码,完成这个功能

If Tables(e.DataTable.Name).Cols(e.DataCol.Name).AllowDirectType = false then
    If e.NewValue = "" then
        e.Cancel = true
    End If
endif

--  作者:lzzhx
--  发布时间:2017/3/27 12:02:00
--  
If Tables(e.DataTable.Name).Cols(e.DataCol.Name).AllowDirectType = false then
    If e.NewValue is nothing then
        e.Cancel = true
    End If
endif