找回密码
 立即注册

QQ登录

只需一步,快速开始

Julie_Zhao
论坛元老   /  发表于:2011-12-22 09:52  /   查看:7044  /  回复:7
你好,项目有一项功能,是当鼠标点击某个单元格时,就弹出一个Model窗口。

目前用的onEditStart调用Javascript。

但客户希望不需要双击,单击即可弹出,请问Spread是否有这个事件。

不考虑服务器事件CellClick,因为列太多,随便点击哪个单元格都回发,这种解决方案不好。

请问版主是否有更好的建议,谢谢!
Coding....

7 个回复

正序浏览
iceman
社区贡献组   /  发表于:2011-12-22 17:12:00
8#

回复 7# Julie_Zhao 的帖子

:share:
回复 使用道具 举报
Julie_Zhao
论坛元老   /  发表于:2011-12-22 17:10:00
7#
应该是版本的问题,谢谢版主,我已经寻求其它方案解决了。
Coding....
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-22 12:19:00
6#
Julie 你好,请问你使用 Spread 的版本信息是?

这是我的测试 Demo:VS 2010 + Spread for ASP.NET 5.0
3053.zip (2.77 MB, 下载次数: 240)
回复 使用道具 举报
Julie_Zhao
论坛元老   /  发表于:2011-12-22 12:02:00
5#
var celltype = FpSpread1.Cells(row,col).FpCellType;
该行提示“对象不支持该方法或属性”。
以为版主打错单词,改成
var celltype = FpSpread1.Cells(row,col).FpsCellType;之后还提示同样的错误。
也许我的版本不支持这个属性吧。
Coding....
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-22 11:36:00
地板

回复 3# Julie_Zhao 的帖子

Julie 你好,不必客气,很高兴我的回答对你有帮助~

判断 Cell 是否为 ReadOnly,可以通过以下代码实现:

  1.      <script type="text/javascript">
  2.         function cellclick() {
  3.             //进行条件判断,是否为特定单元格或某种单元格类型
  4.             var row = FpSpread1.ActiveRow;
  5.             var col=FpSpread1.ActiveCol;
  6.             var celltype = FpSpread1.Cells(row,col).FpCellType;
  7.             if (celltype !="readonly") {
  8.                 alert("success");
  9.             }
  10.         }
  11.     </script>
复制代码
回复 使用道具 举报
Julie_Zhao
论坛元老   /  发表于:2011-12-22 11:09:00
板凳
感谢版主iceman,问题已经解决。
但衍生出一个小Bug,希望版主能帮忙看一下。

假如我Spread有三行数据。其中某一列为单击即弹出窗体,但是前两行数据逻辑上不能被修改的,被设定为ReadOnly了,所以我希望能只有在第三行时单击才弹出窗体。(注意:总共几行是无法确定的,第几行需要弹出也是无法确定的,只有一点,就是ReadOnly的单元格在单击时不能弹出窗体。)

所以,在Javascript中是否可以判断某一单元格的值是否为ReadOnly状态,如果是,则不弹,如果不是才弹出,这种逻辑能否做到?

谢谢版主。
Coding....
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-22 10:34:00
沙发

回复 1# Julie_Zhao 的帖子

Julie_Zhao 你好,
可以通过下面方法实现前台的 CellClick 事件:
后台代码:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             FpSpread1.Attributes.Add("onclick", "cellclick()");
  4.         }
复制代码
前台代码:
  1.     <script type="text/javascript">
  2.         function cellclick() {
  3.             //进行条件判断,是否为特定单元格或某种单元格类型
  4.             if (FpSpread1.ActiveCol==0&amp;&amp;FpSpread1.ActiveRow==0) {
  5.                 alert("test");
  6.             }
  7.         }
  8.     </script>
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部