handler和fn和onevent的区别

1.AjaxEvents

<AjaxEvents>
                <Click OnEvent="Select">
                    <ExtraParams>
                        <ext:Parameter Name="Id" Value="node.id" Mode="Raw">
                        </ext:Parameter>
                        <ext:Parameter Name="Name" Value="node.text" Mode="Raw">
                        </ext:Parameter>
                    </ExtraParams>
                </Click>                
</AjaxEvents>

2.Listeners

<Listeners>
                <Click Handler="alert(node.attributes.hrefTarget);" Fn="" />
</Listeners>  

 

Handler与Fn以及OnEvent的区别?

1.Fn(优先级高于Handler,当两则共同存在时则Handler就不再起作用了。)

The raw JavaScript function to be called when this Listener fires.

<Click Fn="Function_Name" />

此处只写函数名,函数体写在Head当中。

2.Handler

The JavaScript logic to be called when this Listener fires. The Handler willbe automatically wrapped in a proper function(){} template and passed the correct arguments for this event.

<Click Handler="alert(node.attributes.hrefTarget);" />

此处不能写函数名,只能写一段JS代码。

3.OnEvent(用于写在.cs文件里面的后台代码)

<Click OnEvent="Select">
                    <ExtraParams>
                        <ext:Parameter Name="Id" Value="node.id" Mode="Raw">
                        </ext:Parameter>
                        <ext:Parameter Name="Name" Value="node.text" Mode="Raw">
                        </ext:Parameter>
                    </ExtraParams>
</Click>

        /// <summary>
        /// 点击树所触发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Select(object sender, AjaxEventArgs e)
        {
            //Ext.Msg.Alert("当前选中值", sender.ToString()).Show();
            string text = "";

            foreach (Coolite.Ext.Web.Parameter item in e.ExtraParams)
            {
                text += item.Name+" : "+ item.Value+"<br/>";
            }
          
            Ext.Msg.Alert("当前选中值", text).Show();
        }

Handler与Fn以及OnEvent的转换方式?

<Listeners>
                <BeforeLoadFn="nodeLoad"/>
</Listeners>

<scripttype="text/javascript">
        function nodeLoad(node) {
            Coolite.AjaxMethods.NodeLoad(node.id, {
                success: function(result) {
                    var data = eval("(" + result + ")");
                    node.loadNodes(data);
                },

                failure: function(errorMsg) {
                    Ext.Msg.alert('Failure', errorMsg);
                }
            });           
        }
    </script>

        [AjaxMethod]
        public static string NodeLoad(string nodeID)
        {
            Coolite.Ext.Web.TreeNodeCollection nodes = newCoolite.Ext.Web.TreeNodeCollection();
            if (!string.IsNullOrEmpty(nodeID))
            {
                for (int i = 1; i < 6; i++)
                {
                    AsyncTreeNode asyncNode = new AsyncTreeNode();
                    asyncNode.Text = nodeID + i;
                    asyncNode.NodeID = nodeID + i;
                    nodes.Add(asyncNode);
                }

                for (int i = 6; i < 11; i++)
                {
                    Coolite.Ext.Web.TreeNode treeNode = newCoolite.Ext.Web.TreeNode();
                    treeNode.Text = nodeID + i;
                    treeNode.NodeID = nodeID + i;
                    treeNode.Leaf = true;
                    nodes.Add(treeNode);
                }
            }

            return nodes.ToJson();
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Handler和Controller是两个不同的概念。 Handler是处理器的意思,是一个处理请求的程序,通常用于处理HTTP请求。在Java中,Handler可以是一个Servlet、一个Filter、一个Interceptor等等。 Controller是控制器的意思,是MVC模式中的一个组件,用于接收用户请求并调用相应的业务逻辑处理程序。在Java中,Controller通常是一个Spring MVC中的Controller类。 因此,Handler和Controller的区别在于它们的作用和使用场景不同。Handler主要用于处理HTTP请求,而Controller主要用于接收用户请求并调用相应的业务逻辑处理程序。 ### 回答2: 需要注意的是,handler 和 controller 这两个术语可能在不同的上下文中有着略微不同的涵义。但是通常来说,它们都是指在程序设计中用于处理请求和响应的一些组件。一些常见的技术栈(比如 Web 开发中的 MVC 架构)大量使用了这些组件,使得正确理解它们的区别变得十分重要。 Handler 和 controller 的主要区别在于它们各自处理请求的程度不同。 1. Handler Handler 称为处理器,它通常指的是用于接收和处理相应请求的执行代码块或方法。通过 handler,可以访问和操作请求中的数据,例如请求头、请求体、URL 参数等等。在很多情况下,handler 可以用于返回给客户端响应数据,比如 HTML、JSON 或者其他类型的响应。 在很多技术栈中,handler 通常被视作一些底层的代码,它们负责执行一些基本的任务,例如路由分发、安全认证、数据验证等等。由于它们通常没有太多的业务逻辑,所以 handler 可以比较轻量级,也比较容易测试和维护。 2. Controller 与 handler 不同,controller 称为控制器,通常承担着更高层次的任务。它与应用的业务逻辑紧密相关,可以在不同的 handler 中重复使用,协调不同的资源,并将不同的响应组合成一个更高级别的结果。因此,controller 中包含的代码通常相对较多,设计也更为复杂。 在很多技术栈中,controller 通常是将请求路由到正确的处理器上的中间层。controller 可以用于处理具有相同或相似功能的一组 handler,并协调它们组合成一个完整的响应。由于允许将业务逻辑从 handler 中解耦出来,因此 controller 包含的代码不太容易测试。但是,controller 对于提高应用的可维护性和可扩展性是非常重要的。 综合来看,handler 和 controller 是两个不同的但相互关联的组件。在开发 Web 应用程序时,它们的组合和使用可以帮助我们组织代码、提高效率,同时也可以提高代码的可读性和可维护性。因此,在实际开发中,理解和使用它们是非常重要的。 ### 回答3: 在编程中,handler和controller都是常见的概念,它们都是用于处理各种请求并作出响应的组件,但是它们之间还有一些区别Handler一般指的是处理程序,它是一种用于处理请求的普通函数或者方法,用于执行特定任务。在Web开发中,handler通常会接受HTTP请求并返回HTTP响应,它可以被用于处理静态资源或者动态资源。而在Android中,Handler则用于与UI线程进行通信,它能够在子线程中发送消息或者任务到主线程中执行。 Controller一般指的是控制器,用于将模型和视图分离。在MVC(Model-View-Controller)开发模式中,Controller负责接收用户请求并将请求内容传递到模型中进行处理,在模型处理后,将结果返回到视图中进行显示。Controller也可以用于处理业务逻辑,例如对用户的注册/登录等操作进行控制。 Handler和Controller的区别在于它们的用途和上下文环境。Handler通常用于处理特定的请求,通常用于Web和Android等方面的开发中;而Controller则通常用于MVC开发模式中,用于将模型和视图分离,处理业务逻辑和用户请求,通常用于桌面应用和Web开发中。 总的来说,Handler和Controller都是编程中重要的组件,不同的场景和任务可能需要选择不同的组件进行处理。在实际开发中,根据具体需求选择合适的处理程序能够更好的完成任务,并提高系统的可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值