将处理程序绑定到Ajax Sys.Component.propertyChanged事件

时间:2009-10-18 20:27:08

标签: asp.net-ajax

“当您创建客户端组件类时,您可以定义希望页面开发人员访问的属性。您还可以在组件属性的集合访问器中引发Sys.Component.propertyChanged通知事件。页面开发人员使用该组件的人可以将属性通知事件绑定到他们自己的处理程序,以便在属性值更改时运行代码。“来自http://www.asp.net/AJAX/Documentation/Live/tutorials/DefiningBindableClientComponent.aspx

当从属性访问器引发时,是否有人知道如何将处理程序绑定到属性更改事件。看了很久但却无法找到一个示例来说明你将如何做到这一点。

1 个答案:

答案 0 :(得分:0)

我最终解决了这个问题,当时并不明显。

当您的Ajax对象的任何属性发生更改时,Sys.Component.propertyChanged事件是唯一引发的事件。引发事件时,它返回已更改的属性的名称。

要访问此属性,我们只需要在创建对象时将处理程序传递给propertyChanged事件:

function applicationLoadHandler(sender, args) {
                        // Create the DemoTimer component instance.  
                        // Set properties and bind events.
                        timer = $create(Demo.Timer,
                    { enabled: true, id: "demoTimer1", interval: 2000 },
                    { tick: OnTick, propertyChanged: doSomethingOnIntervalUpdate }, null, null);

要找出已更改的属性,请从事件args调用get_propertyChanged:

            function doSomethingOnIntervalUpdate(sender, args) {
                alert(args.get_propertyName());

            }

我找不到任何asp.net ajax网站上绑定的propertyChanged事件的示例,但设法通过此网页上的类似用法进行处理:http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=755#start

也许没有脑子,但是把我困住了几个小时。