找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2012-10-28 16:02  /   查看:10071  /  回复:14
Hi

请问:如何在JS中,如何为某个隐藏列的单元格赋值?好像使用SetValue不行?有什么办法没有?
取得值的方法为:GetHiddenValue吧?

以上帮忙解答。谢谢!

14 个回复

倒序浏览
sam
论坛元老   /  发表于:2012-10-28 17:05:00
沙发
再补充一下,隐藏列的单元格的改变后,也要引起trigger the onDataChanged event .
即,该如何做到级联触发。(当一个单元格【隐藏单元格】的值改变后,也会引起另一个单元格的值的改变。)
非隐藏单元格我已通过SetValue方法实现了以上。
请问:如上该如何实现?非常感谢!
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-10-29 10:06:00
板凳
Hi  dof,iceman:

以上幫忙看看了,這個非常緊急,客戶催的急。謝謝!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-29 14:20:00
地板
回复 1楼sam的帖子

sam,你好

使用下面的代码可以实现在客户端修改隐藏列单元格的值:
  1.     var r = FpSpread1.all("FpSpread1_viewport").rows(0);
  2.     r.setAttribute("hvA", "21");
复制代码


其中“hvA”中的A代表的是该列的列名
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-29 14:30:00
5#
回复 2楼sam的帖子

隐藏单元格修改后不会触发DataChanged,因为隐藏列在客户端是通过Attribute来实现的,并没有普通单元格的td概念。
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-10-29 16:14:00
6#
Hi dof
谢谢!我刚试过了,是可以设置。但是有个问题,就是好象不能保存设置的值。我设置好后,再用另一个按钮取值就取不到,取出的值还是设置之前的值。这个该如何解决?

另,你那有没解决方法来实现,隐藏列也实现级联触发。DataChanged

因为我需求是,当隐藏列的某个值发生改变时,需要触发到其他相关某个单元格的值的改变。
或者有没其他可行的解决方案?

以上有没办法?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-29 18:45:00
7#
设置隐藏列的值可以通过调用自定义的Command来实现,比如通过调用SetHiddenCellValue来实现:
后台代码
  1.         protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  2.         {
  3.             switch (e.CommandName)
  4.             {
  5.                 case "SetHiddenCellValue":
  6.                     Point point = (Point)e.CommandArgument;
  7.                     FpSpread1.ActiveSheetView.Cells[point.X, point.Y].Value = HiddenField1.Value;
  8.                     break;
  9.                 default:
  10.                     break;
  11.             }
  12.         }
复制代码


前端JS代码
  1.         function Button1_onclick() {
  2.             document.getElementById("HiddenField1").value = "aaaa";

  3.             FpSpread1.CallBack("SetHiddenCellValue,0,1");
  4.         }
复制代码




6680_Hidden.zip (8.06 KB, 下载次数: 418)
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-10-29 22:33:00
8#
以上方法,是可以实现。但是这样会引起后台的刷新。我想要的效果是直接使用Js方法来设置隐藏列的值。不能后台刷新,请问,这样该如何实现?谢谢!
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-10-29 22:46:00
9#
就像SetValue方法,不会引起后台的刷新。
回复 使用道具 举报
sam
论坛元老   /  发表于:2012-10-29 23:30:00
10#
还有,js设置的隐藏格的值后(直接使用JS方法设置,不要引起后台刷新)。然后在后台也要能取到,使用Fpgrid.sheet1.cells[0,2].value来取值。
谢谢!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部