1

独自のカスタム コントロール エクステンダーを作成しようとしていますが、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関数を実行する運がありません。

これまでのところ、コードプレックスのソースを見てこれを一緒にハックしましたが、成功しませんでした!

4

1 に答える 1

1

タイプ this._onClick を変更します

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

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

これが結果をもたらすことを願っています:)

于 2012-06-21T07:57:16.800 に答える