找回密码
 立即注册

QQ登录

只需一步,快速开始

Start

高级会员

12

主题

39

帖子

1115

积分

高级会员

积分
1115

活字格认证

Start
高级会员   /  发表于:2011-12-12 09:01  /   查看:6804  /  回复:3
1.同一个单元格,我可以绑定两种类型吗?比如CheckBox和image

2.单元格,我绑定一个TextBox类型,当我输入数据后,怎样使用想当与TextChanged事件(就是通过后台事件执行代码,赋值另外的单元格),最好不通过js事件执行。

3.关于updateCommand事件,如果,有A,B,C三列,我修改了A列,然后执行该事件,在执行中,赋值给B,C两列。为什么这个时候A列的值不能赋值为另外一个值了呢?

4. 我绑定单元double类型,定义小数位为4位,我 前台输入的时候,小数位是显示到4位,但是我后台赋值,为什么只显示两位呢?

5. 当用户输入数据后,我根据输入数据Insert进数据库一条记录,在Insert前,我进行数据格式判断,如果不符合,我return掉。这个时候页面的保存按钮为什么就是灰色的了?有没有办法,不进行这次保存,返回到点击保存按钮前的状态?

6. 关于SavaChanges()函数,上次问题关于这个函数的问题,你说可通过获取异常来得到是否保存成功,不太明白,麻烦详细说下。

7. 关于Insert问题,我不用控件的插入一行事件,而是通过保存按钮,Insert进数据库,然后再查找出,并重新绑定控件数据源来显示新数据。请问这种方法可不可行,怎样实现?(不用js事件)

8. 请问该控件适不适合用于数据的频繁计算,和数据库交互比较频繁的项目。

请教版主!问题比较多,请版主不要有意见啊。。。。。

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2011-12-12 11:28:00
沙发
Start 你好,问题多当然不会有意见,反而,还要感谢你对 Spread 控件的大力支持。

下面分别阐述问题答案:

1.同一个单元格只能设置一种单元格类型,不过 CheckBoxCellType 单元格类型,提供 CssClass 属性,可以定制 CheckBoxCellType 样式,包括背景图片。

2.在 Spread 前台 onDataChanged 事件中添加以下代码可以 调用 后台 UpdateCommand
  1. <script language="javascript" type="text/javascript" id="FpSpread1_Script0">
  2.                 function FpSpread1_DataChanged(event){
  3.                     //Add code to handle your event here.
  4.                     alert("change");
  5.                     FpSpread1.UpdatePostbackData();
  6.                     FpSpread1.CallBack("Update");  
  7.                 }
  8.         </script>
复制代码
3.可以通过更改 e.EditValues[] 去实现更改单元格的值。

4.我通过以下代码进行尝试:
  1. FarPoint.Web.Spread.DoubleCellType dblc = new FarPoint.Web.Spread.DoubleCellType();
  2.             dblc.DecimalDigits = 4;
  3.             dblc.FixedPoint = true;
  4.             FpSpread1.ActiveSheetView.Cells[0, 1].CellType = dblc;
  5.             FpSpread1.ActiveSheetView.Cells[0, 1].Text = "435.9812";
复制代码
显示值为 "435.9812" 所以没有重现你的问题。

5.是否可以把 校验部分放到前台的 FpSpread1_DataChanged 事件中校验,这样可以实现,如果检验失败则 return ,Update 按钮继续生效。

6.SaveChanges() 函数没有返回值,所以目前除了 try...catch 异常没有办法确认是否保存成功。

7.请问你的保存按钮是指?Spread 的 Update 按钮,还是标准控件 button。

8.Spread提供了类似于Excel的数据操纵方式,支持多种计算公式,通过后台代码可以非常方便的实现数据库的读写操作。不知你说的“频繁计算”是一个什么样的使用场景?
回复 使用道具 举报
Start
高级会员   /  发表于:2011-12-12 11:55:00
板凳
2. CssClass 属性可以通过后台更改来实时显示的吗?

5. 对于用js来获取列,我认为有问题。
比如我有A,B,C三列,我后台通过权限来设置用户可以看到哪列,
如果我前台用索引cell[0,1]取得B列,但是我后台权限中设置A是隐藏的,则这个取值就有问题。而且我列隐藏是不固定的,就是可以隐藏任意一列。

7.我说的保存按钮就是Spread的Update按钮

8. 计算的问题是这样,比如,我前台获取一数据A,然后通过SQL查询一些计算公式,算出另外一个数据值B,并将B显示到另外单元格中

请教。。。。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-12 17:25:00
地板

回复 3# Start 的帖子

Start  你好,
2.有两种方法可以进行 CssClass  实时操作:
     a.可以在后台 重现创建实例,重新设置给单元格。
     b.或者取得该单元格类型实例进行类型转换进行操作,方法为:

  1. FarPoint.Web.Spread.TextCellType textType = new FarPoint.Web.Spread.TextCellType();
  2. textType.CssClass = &quot;texttype1&quot;;
  3. this.FpSpread1.ActiveSheetView.Columns[0].CellType = textType;
  4. (this.FpSpread1.ActiveSheetView.Columns[0].CellType as FarPoint.Web.Spread.TextCellType).CssClass = &quot;texttype2&quot;
复制代码
5.Spread 提供前台方法 GetHiddenValue() 可以取得隐藏列的值,所以就可以在后台把隐藏列的索引传到前台,我的方法是创建一个标准控件 TextBox 然后在后台把隐藏列值赋给 TextBox ,最后隐藏该 TextBox,在通过判断是否为隐藏列,再进行取值。

7.在 FpSpread1_UpdateCommand 事件中填写数据库 Insert 语句即可。

8 该功能可以实现,要注意的是 UpdateCommand 中要通过 e.EditValues[] 去赋值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部