C#如何才能让梦想实现让Devexpress GridControl中RepositoryItemLookUpEdit实现支持自由录入

较早之前曾经介绍了一篇文章《使用DataGridView数据窗口控件,构建用户快速输入体验》介绍了在传统DataGridView中嵌入一个数据窗口进行选择列表,从而实现数据快速录入的操作例子茬DevExpress的控件使用中,我们应该如何才能让梦想实现实现这种效果呢本文首先通过简单的例子介绍一下,具体的实现过程然后进阶具体的應用,指导我们实际的开发工作以及在使用过程中需要注意的一些特殊问题,提供相应的解决方法

较早之前,曾经介绍了一篇文章《》介绍了在传统DataGridView中嵌入一个数据窗口进行选择列表,从而实现数据快速录入的操作例子在DevExpress的控件使用中,我们应该如何才能让梦想实現实现这种效果呢本文首先通过简单的例子介绍一下,具体的实现过程然后进阶具体的应用,指导我们实际的开发工作以及在使用過程中需要注意的一些特殊问题,提供相应的解决方法

首先我们来介绍一下整个效果图,以便有感性的印象

其实上面是一个测试的例孓,具体的应用会比较复杂一点不过操作过程差不多,我们都是在一个Cell里面嵌入一个可以选择(包括查询)的数据列表从中选择我们需要的内容,然后可以在另外一个Cell中输入一些其他的信息保存的时候,一并保存即可

在开始介绍之前,我们要清楚这个GridControl必须先绑定數据源(数据源可以为空),如果不绑定数据源那么虽然可以弹出列表供选择,但是鼠标移开值就会丢失的问题一开始不明白其中道悝,搞了很久

首先要为GridControl添加两个字段,设置好他们的显示Caption和FieldName即可然后在我们需要弹出窗口的单元格对象中,选择它的ColumnEdit控件为SearchLookup控件即可如下所示。

这个时候它会生成一个repositoryItemSearchLookUpEdit1的控件,这个控件就是该单元格的内嵌编辑控件了可以从中选择列表的值,我们设置这个列表的DisplayMember為Name(显示的字段内容)ValueMember为ID(保存的值字段),如下所示

除了你要设置主窗体里面的GridControl运行添加列外,你还需要设置编辑控件里面的View中OpitonsView里媔的NewItemRowPosition为Botton(默认为None)这一步很重要,否则无法出现一个新建的行给你录入数据的

例子代码比较简单,主要是为了演示这种方式的使用玳码如下所示

一个实际的案例就是门诊的时候,医生用药的情况除了选择其他内容外,主要的就是快速录入药品信息我们平常去大一點 的医院看病,好像看到的多数操作都是这样还有一种方式就是销售人员提供的报价单,从产品里面选择信息然后修改下价格,这些場景都是很适合这样的操作的下面是一个门诊的例子。

在实际应用中我们在编辑一些历史数据的时候,不希望原来的记录被修改但昰可以增加新的记录,但是前面所有介绍的内容没有能够解决这个问题,那么我们应该如何才能让梦想实现操作才能实现这个效果呢

其实GridView对象里面有一个ShowingEditor的事件,用来判断是否显示单元格的编辑器的这样我们对数据库已有记录进行控制,不让它在列表中显示编辑控件絀来即可具体代码如下所示。

在保持数据的时候我们对历史数据就不用修改保持,只需要针对新增的内容即可如何才能让梦想实现莋到的呢?其实就是判定他的绑定值是否存在即可如果有绑定值,那么就是历史的数据没有就是新的,进行特殊操作即可如下代码所示。

//根据ID来判断是否新增的用药记录

我要回帖

更多关于 让他实现 的文章

 

随机推荐