找回密码
 立即注册

QQ登录

只需一步,快速开始

lud
论坛元老   /  发表于:2012-8-13 08:52  /   查看:10181  /  回复:11
Spread的单元格怎么在客户端判断是否改变,若改变,则更换单元格的时候则把改变的数据保存到数据库里,否则则不变,请问Spread里面怎么实现

11 个回复

倒序浏览
lud
论坛元老   /  发表于:2012-8-13 11:19:00
沙发
怎么获取我在前台刚刚输入的数据啊,求救(我用了JS自动调用FpSpread1_UpdateCommand事件,修改之后获取不到我刚刚操作的数据,获取的都是空值,但是直接点击FpSpread1_UpdateCommand则可以获取刚刚修改的数据,我现在想实现的事修改一个单元格保存一次,请问怎么操作) 版主 求救
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-8-13 12:28:00
板凳
回复 2楼lud的帖子

lud 你好,
不好意思,让你久等了。
可以在前台的 EditStopped 事件中添加以下代码,在后台的 FpSpread1_UpdateCommand 取值即可:

  1.     <script language="javascript" type="text/javascript" id="FpSpread1_Script0">
  2.                 function FpSpread1_EditStopped(event){
  3.                     //Add code to handle your event here.
  4.                     var spread = this.document.getElementById("<%=FpSpread1.ClientID %>");
  5.                     spread.UpdatePostbackData();
  6.                     spread.Update();   
  7.                 }
  8.         </script>
复制代码
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-8-13 12:48:00
地板
我现在遇到的问题是这样的,在我输完单元格保存的不是最新输入的值,而是输入之前的值,如果要保存这次最新输入的值,我还得在改变一次单元格的值,我用了你上面的方法 也咩有解决
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-8-13 14:34:00
5#
回复 4楼lud的帖子

Hi lud ,
请参考我的 Demo,关于在 Update 事件中取值可以参考:http://gcdn.grapecity.com/showtopic-4008.html

5650.zip (2.87 MB, 下载次数: 1000)
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-8-13 15:16:00
6#
看了你的代码,我这代码判断也参考了你这里面的设置,我把我做的一个Demo发给你,麻烦你帮我看下,怎么及时更新,数据库可以随便使用一个数据库的表

SpreadDemo.zip

2.59 MB, 下载次数: 690

测试Demo

回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-13 18:23:00
7#
你好 lud

你的代码已基本完成了更新功能,就是有一点需要稍微修改,因为在后台通过Text还拿不到页面中输入的值,应该通过e.EditValues来得到最新的值,需要修改一下代码:

  1.     //通过判断当前元素类型获取当前列

  2.     for (int i = 0; i &lt; editValues.Count; i++)
  3.     {

  4.         if (editValues[i] is string)
  5.         {

  6.             currentCol = i;
  7.             currentValue = editValues[i].ToString();
  8.         }

  9.     }
复制代码

  1.     DBHelp.Modife(ref con, &quot;text1&quot;, FpSpread1.ActiveSheetView.Columns[currentCol].DataField.ToString(), currentValue, FpSpread1.ActiveSheetView.Cells[currentRow, 0].Text.ToString());
复制代码


你再测一下吧
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-8-14 08:25:00
8#
可以了
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-8-14 09:05:00
9#
dof 再请教一个问题,如果我想把修改的数据批量保存,Spred有在客户端把修改的值记录下来功能吗,怎么记录
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-14 11:47:00
10#
如果在客户端一次修改多行数据,Spread会自动记录那些数据被修改过,然后点击Update按钮(绿色的对勾),此时修改了几行数据就会触发几次UpdateCommand事件,而在UpdateCommand事件中只需要关心当前行被修改的数据就可以了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部