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

    服务器端的处理虽然方便,但因为每次都要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="***"这样的效果。
 
posted @   jetz  阅读(2868)  评论(12编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示