如何从jQuery调用Ajax控件事件
本文关键字:Ajax 控件 事件 调用 jQuery | 更新日期: 2023-09-27 18:16:01
我正在使用使用microsoft ajax工具包编写的一些控件。我想用jQuery在这些控件中触发一个事件。我希望它应该像触发jQuery的任何事件一样简单,但它似乎不起作用。下面是示例代码。
Ajax控制/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("MyNameSpace");
MyNameSpace.AjaxUserControl = function(element) {
MyNameSpace.AjaxUserControl.initializeBase(this, [element]);
}
MyNameSpace.AjaxUserControl.prototype = {
initialize: function() {
MyNameSpace.AjaxUserControl.callBaseMethod(this, 'initialize');
}
},
dispose: function() {
MyNameSpace.AjaxUserControl.callBaseMethod(this, 'dispose');
},
_onChange: function(evt) {
alert('On Change event.');
},
}
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
Jquery代码:var myJqueryControl = (function ($, AjaxControl) {
$(document).ready(function(){
var ajaxEventProxy = Function.createDelegate(AjaxControl, AjaxControl._onChange);
$("#JqueryCommandButton").click(ajaxEventProxy);
} (jQuery,MyNameSpace.AjaxUserControl));
它不工作,当按钮被点击,我不能看到警告消息在onchange。如果有任何指导,我将不胜感激。
谢谢CSC
如果遵循JQuery小部件模式,工作起来会容易得多。因为AJAX控件像小部件一样包装元素,所以可以更容易地将两者集成,方法是使用init方法编写一些设置:
_init: function() {
//store a control reference within the widget
this._control = $find(this.element.attr("id"));
}
然后,在您的小部件中,您可以通过this._control
来引用控件。
如果你不能切换模型,解决这个问题的方法不是直接引用类型,而是引用实例…不是将引用MyNameSpace.AjaxUserControl
传递给构造函数,而是传递一个实例,然后您可以这样做:
instance._onchange();
调用事件