Создание настраиваемого расширителя элементов управления AJAX Control Toolkit (C #) .js.js - PullRequest
0 голосов
/ 06 ноября 2019

Я следовал за Создание пользовательского инструментария управления Ajax Я получаю это странное:

Error Assembly 'CustomExtenders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not contain a Web resource with name 'CustomExtenders.DisabledButtonBehavior.js.js'.

Очевидным решением было бы удалить лишние .js, но после игры скод, который я не могу найти, где это происходит.

Единственное отличие в моем коде состоит в том, что в файле конструктора мне необходимо указать тип

class DisabledButtonDesigner : AjaxControlToolkit.Design.ExtenderControlBaseDesigner<DisabledButtonExtender>

DisabledButtonDesigner.cs

using System.Web.UI.WebControls;
using System.Web.UI;

namespace CustomExtenders
{
    class DisabledButtonDesigner : AjaxControlToolkit.Design.ExtenderControlBaseDesigner<DisabledButtonExtender>
    {
    }
}

DisabledButton.js

Type.registerNamespace('CustomExtenders');

CustomExtenders.DisabledButtonBehavior = function (element) {

    CustomExtenders.DisabledButtonBehavior.initializeBase(this, [element]);

    this._targetButtonIDValue = null;
    this._disabledTextValue = null;

}

CustomExtenders.DisabledButtonBehavior.prototype = {

    initialize: function () {
        CustomExtenders.DisabledButtonBehavior.callBaseMethod(this, 'initialize');

        // Initalization code
        $addHandler(this.get_element(), 'keyup',
            Function.createDelegate(this, this._onkeyup));
        this._onkeyup();
    },

    dispose: function () {
        // Cleanup code 

        CustomExtenders.DisabledButtonBehavior.callBaseMethod(this, 'dispose');
    },

    // Property accessors 
    //
    get_TargetButtonID: function () {
        return this._targetButtonIDValue;
    },

    set_TargetButtonID: function (value) {
        this._targetButtonIDValue = value;
    },

    get_DisabledText: function () {
        return this._disabledTextValue;
    },

    set_DisabledText: function (value) {
        this._disabledTextValue = value;
    },

    _onkeyup: function () {

        var e = $get(this._targetButtonIDValue);
        if (e) {
            var disabled = ("" == this.get_element().value);
            e.disabled = disabled;
            if (this._disabledTextValue) {
                if (disabled) {
                    this._oldValue = e.value;
                    e.value = this._disabledTextValue;
                }
                else {
                    if (this._oldValue) {
                        e.value = this._oldValue;
                    }
                }
            }
        }
    }

}

CustomExtenders.DisabledButtonBehavior.registerClass('CustomExtenders.DisabledButtonBehavior', AjaxControlToolkit.BehaviorBase);

DisabledButtonExtender.cs

using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;

[assembly: System.Web.UI.WebResource("CustomExtenders.DisabledButtonBehavior.js", "text/javascript")]

namespace CustomExtenders
{
    [Designer(typeof(DisabledButtonDesigner))]
    [ClientScriptResource("CustomExtenders.DisabledButtonBehavior", "CustomExtenders.DisabledButtonBehavior.js")]
    [TargetControlType(typeof(TextBox))]
    public class DisabledButtonExtender : ExtenderControlBase
    {
        [ExtenderControlProperty]
        [DefaultValue("")]
        [IDReferenceProperty(typeof(Button))]
        public string TargetButtonID
        {
            get
            {
                return GetPropertyValue("TargetButtonID", "");
            }
            set
            {
                SetPropertyValue("TargetButtonID", value);
            }
        }

        [ExtenderControlProperty]
        [DefaultValue("")]
        public string DisabledText
        {
            get
            {
                return GetPropertyValue("DisabledText", "");
            }
            set
            {
                SetPropertyValue("DisabledText", value);
            }
        }
    }
}
...