码迷,mamicode.com
首页 > 其他好文 > 详细

GetChanges使用痛点

时间:2020-06-09 20:44:11      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:idv   删除   代码   row   图片   style   模拟   遇到的问题   dde   

GetChanges使用时一般用于gridview列数据发生新增、修改、删除。用来获取这些数据,最后更改数据库。

在这里我遇到的问题是,经理要求原来的保存按钮 button  必须去掉,技术图片

并且使用底下的小图标来啊保存。这也是用户习惯的原因。

 

于是我就要实现这个功能。其中问题最大的出现了。当我 

 1             var  dataTable = gridDataSource.DataSource as DataTable;
 2             if (dataTable == null)
 3                 return;
 4 
 5 
 6             var inblk = new EI.EIInfo();
 7             inblk.Tables.Clear();
 8             DataTable dtInsertValue = dataTable.GetChanges(DataRowState.Added);
 9             DataTable dtUpdateValue = dataTable.GetChanges(DataRowState.Modified);
10             DataTable dtDeleteValue = dataTable.GetChanges(DataRowState.Deleted);
DataTable dtUpdateValue = dataTable.GetChanges(DataRowState.Modified);
修改了行内的一条数据以后,本应该在上面这行代码获取到修改的数据的,然而,获取到的却是修改前的数据。 然而按钮存在的时候是没有出什么问题的,这个时候的解决方法就是模拟按钮触发事件。
 btnSave.PerformClick(); 成功解决问题。

然而在处理的过程中,我遇到了一个事情就是点击gridview处可以使获取修改后的数据正常,于是我想的是在保存的时候触发点击空白处事件。这个时候用了mousedown事件,搞了老久,主要是调用函数时参数不知道传什么。
在这个时候我也想到了模拟按钮触发事件,//btnSave_Click_1(null,EventArgs.Empty); 这是其中一种调用方式,穿的参数有(this,new eventargs())不过这两种方式都失败了。这个时候我甚至有个想法就是重
新选择一种保存的方式,放弃这种无谓的探究。其实上面成功的那个在第一次尝试的时候是除了问题的。后面我也没再次探究了。
在寻找解决方法的过程中总会遇到啊许多正面解决不了的事情。这个时候就需要迂回。当然代价不小的。我甚至想和经理说干不了这个活。真的是只是不想放在按钮上就要搞这么旧。 总而言之,一定要灵活,主要是更换修改方式,
代价有点太大了。这个时候懂得东西越多,思路越多,解决的越快。就需要平常的积累了。没别的方法。

总结一下:
1.单击空白处,失败
2.模拟按钮 第一次方法选择1 失败
3.放弃getchangeds方法,因为开始只尝试到修改不行,使用硬核的方式将datatable直接压入
dtUpdateValue 成功解决修改的影响,没想到后面插入收到了影响。心态爆炸
4.正确的按钮模拟  成功。

GetChanges使用痛点

标签:idv   删除   代码   row   图片   style   模拟   遇到的问题   dde   

原文地址:https://www.cnblogs.com/Z2978/p/13080127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!