找回密码
 立即注册

QQ登录

只需一步,快速开始

iceman

社区贡献组

270

主题

1万

帖子

1万

积分

社区贡献组

积分
19311

活字格认证微信认证勋章元老葡萄

iceman
社区贡献组   /  发表于:2011-10-10 15:52  /   查看:5622  /  回复:0
大家都知道 IE9 和以往的版本大有不同。IE9 对 DOM 关于 L2 和 L3的支持作出了很多的改进。正因如此,使 IE9 在与 DOM 的交互方面相对其它的浏览器来说有了显著的提升。还有一点需要明确,IE8 支持 DOM L1 和 部分 DOM L2 操作。

因为 IE9 的目标之一是符合 W3C 制定的交互操作系统,所以在 IE9 中移除了 attachEvent 的模式。DOM L2 和 L3 通过以下四项支持添加事件和 API 调用:

1.AddEventListener
2.RemoveEventListener
3.CreateEvent
4.DispatchEvent

这将带来什么挑战呢?让我们通过比较 Spread for ASP.NET 在 IE8 和 IE9 中应用区别去说明。Spread for ASP.NET 提供客户端脚本功能去支持 SpreadSheet 在客户端的操作。下面举一个简单的例子-“怎样去访问 Spread 单元格的值?”。在下面的例子中,我们将会使用 EditStoppted 事件在客户端获取单元格的值。

在编写客户端脚本代码之前,我们需要检测查看页面的浏览器是 IE8、IE9 还是 Firefox。代码如下:
  1. window.onload = function() {
  2.   var spread = document.getElementById("FpSpread1");
  3.   if (document.all) {
  4.     //检测是否是 IE9
  5.     if (spread.addEventListener) {
  6.       //
  7.       spread.addEventListener("EditStopped", editStopped, false);
  8.     }
  9.     else
  10.       //如果是 IE 其它的版本
  11.       spread.onEditStopped = editStopped;
  12.   }
  13.   // 如果是 Firefox
  14.   else {
  15.     spread.addEventListener("EditStopped", editStopped, false);
  16.   }
  17. }
复制代码
针对以上代码,有两点需要注意:

1.IE9 和 Firefox 使用相同的方法添加事件监听。
2.IE9以下的 IE 浏览器版本,我们需要调用 onEditStopped 事件。在其他浏览器中设置和IE9、Firefox的设置相同。

现在,我们将要写的代码是 "editStopped" 方法,这个方法将在单元格内容编辑执行完成后调用。
  1. function editStopped() {
  2.   var spread = document.getElementById("FpSpread1");
  3.   var activeRow = spread.GetActiveRow();
  4.   var activeCol = spread.GetActiveCol();
  5.   var value = spread.GetValue(activeRow, activeCol);
  6.   alert(value);
  7. }
复制代码
为了 IE9 中更好的支持,Spread 提供了 HTC(HTML 组件)文件-"fpspreadie9.htc",如果你默认安装了 Spread.NET ,这个文件的位置是:
        Program Files\GrapeCity\Spread .NET 6\ASP.NET\v6.0.3501\fp_client\fpspread\6_0_3501_2008\HTC
通过这篇文章,我们只展示了一个简单的应用,如果你在使用 GrapeCity Spread for ASP.NET 时遇到困难,请联系我们。
您需要登录后才可以回帖 登录 | 立即注册
返回顶部