找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2012-11-30 15:34  /   查看:4628  /  回复:2
Hi Dof


我這邊問個問題:Spread控件的Js的事件:onDataChanged.
為什么在IE中會重復執行兩次,而在火狐和Chrome瀏覽器中只執行一次。其實正常邏輯是只執行一次,而在IE中會執行兩次。
請問,這個問題怎么解決?麻煩幫忙緊急看下,等著急用。謝謝!
window.onload = function () {
            var spread1 = document.getElementById("<%=FpSpread1.ClientID %>");
            if (document.all) {
                // IE
                if (spread1.addEventListener) {
                    // IE9
                    spread1.addEventListener("DataChanged", FpSpread1_DataChanged, false);
                }
                else {
                    // Other versions of IE and IE9 quirks mode (no doctype set)
                    spread1.onDataChanged = FpSpread1_DataChanged;
                }
            }
            else {
                // Firefox
                spread1.addEventListener("DataChanged", FpSpread1_DataChanged, false);
            }
        }

        function FpSpread1_DataChanged(event) {
            alert("OK");
            return false;
        }

2 个回复

倒序浏览
sam
论坛元老   /  发表于:2012-11-30 15:58:00
沙发
hi

不好意思。我找到原因了,是因為我在Page_Load中也注冊了一個事件:
this.FpSpread1.Attributes.Add(&quot;onDataChanged&quot;, &quot;FpSpread1_DataChanged(event)&quot;);

這樣就會執行多次。
請問,為Spread注冊Js事件是否只能在Js中的Window.onload中注冊,不能通過后臺注冊?

如果我需在后臺中注冊Js事件(不在Window.onload中注冊),該如何注冊?
謝謝!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-11-30 18:00:00
板凳
后台是可以绑定的,会不会是因为,你在前台后台都绑定了一次,所以执行了两次,你可以新建一个工程测试以下:
  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 this.FpSpread1.Attributes.Add("onDataChanged", "FpSpread1_DataChanged(event)");

  6.             }
  7.         }
复制代码
  1.     <script language ="javascript" type="text/javascript">
  2.         function FpSpread1_DataChanged(event) {
  3.             alert("aaaa");
  4.         }
  5.     </script>
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部