devexpress的lookupedit控件的问题

ajdkjalj 2017-12-14 09:49:50
之前lookup数据源绑定的人员列表,在工厂一道工序里有A这个人参与工作保存到数据库,现在这个人离职了,lookup绑定的数据源中没有了A人,导致工序界面lookup显示这个A的人消失了,这个问题怎么办啊。这个控件好像只显示数据源里有的东西,输入不存在的字符时就为空什么都不显示,这个很烦啊,数据库明明有这个 人,但是就是显示不出来
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
拿这和案例来讲一讲数据库冗余的必要性吧。 就像楼主说的一样,他在工序中安排了员工参与工作,但是员工可能离职,这时候员工表中的员工就不存在了,再看工作历史表的时候就会发现找不到这个员工的数据了。 这种时候我的建议是冗余。 原因有二 1、历史记录表越来越臃肿,你再去关联也会和臃肿的员工表,结果就是慢。 2、有些单位是工号作为员工索引,但是有些离职的工号又会回收回来给新员工使用,将会导致历史记录的混乱。 因此很简单,在这个历史记录表里面冗余一下简单的员工信息(姓名,工作日期,当时的一些必要状态等),在展示历史记录的时候展示这个冗余信息即可。 这在业务上解释也是正确的,这个人不在我们单位了,但是这是他工作时候的签名信息。
ajdkjalj 2017-12-14
  • 打赏
  • 举报
回复
解决了,在open事件采用table.rowfilter的办法,增加一列来判断是否离职
DataTable dtUser = (sender as LookUpEdit).ItemsSource as DataTable;
            if (dtUser == null)
                return;
            dtUser.DefaultView.RowFilter ="Lizhi='1'";
然后在popupclose事件中
DataTable dtUser = (sender as LookUpEdit).ItemsSource as DataTable;
            if (dtUser == null)
                return;
            dtUser.DefaultView.RowFilter = "";
这样用户在下拉列表看不到离职的人,但可以显示出来
ajdkjalj 2017-12-14
  • 打赏
  • 举报
回复


第一个图片是张三没有离职,lookup里也有这个人,而且这个人是保存到数据库了的,第2个图是张三离职了,lookup就不显示离职的人,但是那个保存的张三还是要显示出来
一生一事 2017-12-14
  • 打赏
  • 举报
回复
lookupedit是基于绑定数据源的,检索与显示都限于数据源,还是没太明白你想要的效果,可否截张图看一下
ajdkjalj 2017-12-14
  • 打赏
  • 举报
回复
就是A这个人没有在lookup数据源里了,但是之前做的工作又要显示到lookup的text上,终究是lookup的text录入数据源检索不到的就显示不出来
exception92 2017-12-14
  • 打赏
  • 举报
回复
一会数据源里没有了A人,一会又说数据库里有这个人,这是什么跟什么呀

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧