度量快速开发平台-专业、快速的软件定制快开平台

标题: 网格部件【修改单条数据】不刷新更新修改后的数据 [打印本页]

作者: 刘亚东    时间: 2020-4-20 17:08
标题: 网格部件【修改单条数据】不刷新更新修改后的数据
一般情况下我们在构建增删改查窗体的时候,如果修改了某条数据会调用刷新功能来刷新网格中的数据,修改代码如下:
        dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
        form1.Input1="EDIT"
        form1.Input2=网格部件1.GetFocusedRowValue("ID")
        form1.ShowDialog()
        call("刷新")
但是这样如果数据多的话会很慢,所以用一下方法解决:
        dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
        form1.Input1="EDIT"
        form1.Input2=网格部件1.GetFocusedRowValue("ID")
        form1.ShowDialog()
        '判断如果打开的编辑窗体的Output1有值,说明是已经修改成功,那么就更新修改的这一条数据
        if isnull(form1.Output1)=false then
                '查询出被修改的数据
                dim dt=ExecuteSelect("select * from meis_设备基本信息 where ID='"&网格部件1.GetFocusedRowValue("ID")&"'")
                '获取修改的这一行数据的赋值到newdr
                dim newdr=dt.Rows[0]
                '循环网格部件1并判断查询出来的数据中是否有网格部件的字段
                for each c in 网格部件1.DataTable.Columns
                        if dt.Columns.Contains(c.ColumnName) then
                                '如果查询出来的数据中的字段有网格部件中的字段就更新这个字段的值
                                网格部件1.SetFocusedRowValue(c.ColumnName,newdr[c.ColumnName])
                        end if
                next       
        end if



作者: 万望    时间: 2020-4-20 17:24
这么整可能是会比整体刷新好点O(∩_∩)O哈!
作者: 万望    时间: 2020-4-20 22:00
这么好的分享,怎么没人顶楼?
作者: 张兴康    时间: 2020-4-21 10:07
顶一个
作者: 王爱东    时间: 2020-4-22 11:08
这个是大幅提高效率的表现。大家都可以按照这个来构建设置。
作者: 王爱东    时间: 2020-4-22 11:09
项目初期是快速实现客户的原型,后面细节调整,功能完善,这些都是需要注意的知识点。
作者: 陈晓龙    时间: 2020-4-23 14:59
提供效率不错!
作者: 刘亚东    时间: 2020-4-23 17:13
这两个看上去有点像,但是要注意代码,有一点点不一样
作者: 张军勇    时间: 2020-4-24 10:14
这个知识点不错。
但是最好在网格部件更新后,将数据源做一下提交,以清除更新标识。
网格部件1.DataTable.AcceptChanges()
作者: 万望    时间: 2020-4-24 22:04





欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/) Powered by Discuz! X3.2