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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 2316|回复: 9
打印 上一主题 下一主题

[分享] 网格部件新增单条数据不重新刷新显示新增数据

  [复制链接]

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
跳转到指定楼层
楼主
发表于 2020-4-19 19:55:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、网格部件不刷新显示新数据: 我们在做增删改查的窗体的时候,一般列表界面的新增代码是如下:


dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
form1.Input1="ADD"
form1.ShowDialog()
call("刷新")



这样的话有一个问题就是,如果数据多了,那么每次新增完成后都会刷新一下列表,会很慢。
下面呢就是从编辑数据的窗体中返回一个数据ID,然后查询出这条数据,再添加到网格中,这样就只查询一条数据,效率就不用说了。


dim form1 = 创建窗体("a4011f01-6826-4868-b8c8-633251a188eb")
form1.Input1="ADD"
form1.ShowDialog()
'判断编辑窗体中的变量Output1变量(新增数据的ID)是否有值,有说明新增了。
if isnull(form1.Output1)=false then
        '从数据库查询出这条数据
        dim dt=ExecuteSelect("select * from meis_设备基本信息 where id='"+form1.Output1+"'")
        '把查询出来的第一行数据(只有一行)赋值给变量newdr
        dim newdr=dt.Rows[0]
        '网格部件中新增一行,并把这一行赋值给变量row
        dim row=网格部件1.DataTable.NewRow()
        '循环网格部件1的列
        for each c in 网格部件1.DataTable.Columns
                '判断查询出来的数据的列名是否存在与网格部件中,这个判断主要方便,后续在网格部件的业务表中添加、删除字段都没问题,或者定义了别名也不会应找不到字段报错。
                if dt.Columns.Contains(c.ColumnName) then
                '如果查询出来的数据中的字段在网格部件中存在,就把查询出来的某列的值赋值给网格部件新增行的某列
                        row[c.ColumnName]=newdr[c.ColumnName]
                end if
        next       
        '最后把新增的行添加到网格部件中
        网格部件1.DataTable.Rows.Add(row)
end if

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-4-19 20:10:26 | 只看该作者
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
板凳
发表于 2020-4-19 20:27:06 | 只看该作者
这个方法确实好用,可以封装一下不,形成一个简单的方法,只刷新新增的数据。
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
地板
发表于 2020-4-20 13:46:52 | 只看该作者
对啊,强烈建议封装下。{:soso_e85d1f4758b346e8-0748188af89cde16-338c595639cabb76d916f49270c03038.jpg:}
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
5#
发表于 2020-4-22 11:12:40 | 只看该作者
如何提高构建的应用效率,这是各位构建人员向更高一级构建者迈进的方向。
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
6#
 楼主| 发表于 2020-4-24 18:21:55 | 只看该作者
多写了些代码,但是还是可以实现自己想要的这种效果的哦。
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
7#
 楼主| 发表于 2020-4-24 18:27:53 | 只看该作者
反正我觉得这个灰常好
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
8#
发表于 2020-4-25 09:48:50 | 只看该作者
最好在网格部件更新后,将数据源做一下提交,以清除更新标识。
网格部件1.DataTable.AcceptChanges()
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9333

积分

论坛元老

Rank: 8Rank: 8

积分
9333
9#
发表于 2020-4-25 17:22:40 | 只看该作者
不错这个能解决量大性能问题
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
10#
发表于 2020-4-25 17:30:37 | 只看该作者
网格部件1.DataTable.AcceptChanges()
关于datatable的各种数据操作可以多列出介绍下,我记得之前看到有,没成体系。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-27 10:56 , Processed in 0.135130 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表