标签: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.正确的按钮模拟 成功。
标签:idv 删除 代码 row 图片 style 模拟 遇到的问题 dde
原文地址:https://www.cnblogs.com/Z2978/p/13080127.html