为服务器控件加入客户端事件处理的几种方法

来源:互联网 发布:mac os x iso 编辑:程序博客网 时间:2024/04/29 21:58
服务器端的处理虽然方便,但因为每次都要PostBack,因而效率不高,很多时候需要为服务器端控件写入客户端事件处理。把各种方法总结一下:
    1)在HTML代码的标签中直接写。如下
        <asp:Button id="Button5" onmouseover='javascript:alert("hello")' style="Z-INDEX: 109; LEFT:
        注意:
            A、如果是HTML控件,这样写没有任何问题,写的事件处理将直接反映到输出的网页中
            B、如果是web控件,一般不能直接写,因为这种事件处理都会被认为是服务器端的事件处理,在输出的网页中也不会看到。如果写的是客户端的事件的话,如onmouseover,会提示没有找到这个属性,但可以正常运行,并且这个事件的处理也会被传送到输出的网页中。
            C、注意格式,根据情况选择形式
                  onmouseover='javascript:alert("hello")'
                  onmouseover="javascript:alert(&quot;hello&quot;)"

     2)如果控件是动态生成的或者想在代码中加入上面的内容,可以这样
                  Button1.Attributes.Add ("onmouseover","javescript:alert(/"hello/")");

     3)如果控件就没有Atrributes,还要加入客户端响应(虽然这种情况很离奇,但是却真有这种需求,比如为一个树控件的节点添加一个onclick客户端事件响应),还有一招从网上学来的奇招。
                 Button2.ID="ID2" + "/" onmouseover=/"javascript:alert(&quot;hello&quot;)";
            为ID赋值,得到的结果是 ID="***",这样,可以自己去拼中间的内容,最后实际得到的是ID="***" onmouseclick="***"这样的效果。