Помощь в отладке клиентского сценария управления сервером Ajax - PullRequest
0 голосов
/ 20 января 2011

Я пишу Ajax Server Control в ASP.NET C # 4.0 в VS 2010.

После написания класса-прототипа javascript вручную я не знаю способа компиляции и отладки файла. Чтобы понять, почему мое событие "onclick" не работает.

Я создаю элемент управления Ajax Server, унаследовав его от Control & IScriptControl, и пытаюсь заставить работать обработчик события onclick. Письменный контроль на самом деле является «DIV». Может кто-нибудь сказать мне, почему это не работает?

Спасибо

public class FrebbleSquare : Control, IScriptControl 
    {
.
.
.
IEnumerable<ScriptReference> IScriptControl.GetScriptReferences()
        {
            ScriptReference oRef1 = new ScriptReference("FrebbleAjaxControls.FrebbleSquare.js", this.GetType().Assembly.ToString());
            ScriptReference oRef2 = new ScriptReference("FrebbleAjaxControls.prototype.js", this.GetType().Assembly.ToString());
            ScriptReference oRef3 = new ScriptReference("FrebbleAjaxControls.scriptaculous.js", this.GetType().Assembly.ToString());
            ScriptReference oRef4 = new ScriptReference("FrebbleAjaxControls.effects.js", this.GetType().Assembly.ToString());

            return new ScriptReference[] { oRef1, oRef2, oRef3, oRef4 };
        }


        IEnumerable<ScriptDescriptor> IScriptControl.GetScriptDescriptors()
        {
            ScriptControlDescriptor descriptor = new ScriptControlDescriptor("FrebblesAjax.FrebbleSquare", this.ClientID);

            return new ScriptDescriptor[] { descriptor };
        }

}


JAVASCRIPT CLIENT FILE :


Type.registerNamespace('FrebblesAjax');

FrebblesAjax.FrebbleSquare = function (element) {

    FrebblesAjax.FrebbleSquare.initializeBase(this, [element]);


}


FrebblesAjax.FrebbleSquare.prototype =
{
    initialize: function () {

        FrebblesAjax.FrebbleSquare.callBaseMethod(this, 'initialize');

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

        $addHandlers(this.get_element(),
                     { 'click': this._onClick,
                     },
                     this);

    },

    dispose: function () {

        $clearHandlers(this.get_element());

        FrebblesAjax.FrebbleSquare.callBaseMethod(this, 'dispose');
    },

    _onClick: function (e) {

        alert('it worked!');

    }

}


FrebblesAjax.FrebbleSquare.registerClass('FrebblesAjax.FrebbleSquare', Sys.UI.Control);

if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

1 Ответ

1 голос
/ 20 января 2011

Если вы можете использовать Firefox, загрузите расширение Firebug .Когда страница загрузится, щелкните правой кнопкой мыши на элементе, который вы создали, и выберите «проверить элемент».Таким образом, вы можете увидеть всю структуру, свойства и функции DOM, как он существует в настоящее время.Обычно это предпочтительнее «просмотра исходного кода» при работе с JavaScript.Вы должны увидеть, какие обработчики событий связаны, и установить точки останова в отладчике JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...