asp.net ajaxtoolkit 自定义控件扩展器

asp.net ajaxtoolkit Custom control extender

本文关键字:扩展器 自定义控件 ajaxtoolkit net asp      更新时间:2023-09-26

好吧,我试图编写自己的自定义控件扩展器,但我无法让javascript工作

这里有一个空类:

Imports System.ComponentModel
Imports AjaxControlToolkit
Imports System.Web.UI
Imports System.Web.UI.WebControls

<Assembly: System.Web.UI.WebResource("GuiExtensions.PrintButtonBehavior.js", "text/javascript")> 
<Designer(GetType(PrintButtonExtenderDesigner))>
<ClientScriptResource("Sys.Extended.UI.PrintButtonExtender", "GuiExtensions.PrintButtonBehavior.js")>
<TargetControlType(GetType(IButtonControl))> _
Public Class PrintButtonExtender
    Inherits ExtenderControlBase

End Class

这里有javascript:

Type.registerNamespace('Sys.Extended.UI');
Sys.Extended.UI.PrintButtonExtender = function (element) {
    Sys.Extended.UI.PrintButtonExtender.initializeBase(this, [element]);
}
Sys.Extended.UI.PrintButtonExtender.prototype = {
    initialize: function () {
        Sys.Extended.UI.PrintButtonExtender.callBaseMethod(this, 'initialize');
        var element = this.get_element();
        this._clickHandler = Function.createDelegate(this, this._onClick);
        $addHandler(element, "click", this._clickHandler);
    },
    dispose: function () {
        $removeHandler(this.get_element(), "click", this._clickHandler);
        this._clickHandler = null;

        Sys.Extended.UI.PrintButtonExtender.callBaseMethod(this, 'dispose');
    },
    _onClick: function () {
        alert("Test");
        return false;
    }
}
Sys.Extended.UI.PrintButtonExtender.registerClass('Sys.Extended.UI.PrintButtonExtender', Sys.Extended.UI.BehaviorBase);

这里的问题是,当有人单击我分配扩展器的按钮时,永远不会调用_onClick。 我已经验证了"this.get_element();"返回正确的元素,但我没有运气让_onClick函数运行。

到目前为止,我已经通过查看 codeplex 的源代码将其破解在一起,但没有成功!

更改类型this._onClick

this._clickHandler = Function.createDelegate(this, this._onClick);

this._clickHandler = Function.createDelegate(this, this._clickCallback);

希望这会得到结果:)