【问题标题】:How to create event handler for ASP control like Tridion control?如何为像 Tridion 控件这样的 ASP 控件创建事件处理程序?
【发布时间】:2012-08-14 07:11:45
【问题描述】:

我有一个 aspx 页面 PopupReference。我也有 Tridion 控制按钮和一些 asp 控件,例如 asp:ddSelectOption(下拉菜单)。

所以在 Popupreference.js 中,当我们为 Tridion 按钮创建事件处理程序时,我试图为我的 asp 控件创建相同的事件处理程序,如下所示:

这是 Tridion 按钮:

c.InsertButton = $controls.getControl($("#InsertButton"), 
                                      "Tridion.Controls.Button");

这是我的下拉菜单:

c.ddSelectOption = $("#ddSelectOption");

tridion 按钮的事件处理程序:

$evt.addEventHandler(c.InsertButton, "click", this.getDelegate(this._execute));

我的下拉列表的事件处理程序:

$evt.addEventHandler(c.ddSelectOption, "onselectedindexchanged",
                     this.getDelegate(this._ondropdownitemchanged));
console.log('eventhandler created');

我正在调用函数:

RTFExtensions.Popups.PopupReference.prototype._ondropdownitemchanged = 
                      function PopupReference$_ondropdownitemchanged(event) {
  Console.log('Initializing inside dropdown...');
};

但是我无法在任何地方看到最后一个日志,我认为它没有进入函数ondropdownitemchanged(event)。有没有人知道我该如何做到这一点?

【问题讨论】:

    标签: tridion tridion-2011


    【解决方案1】:

    我怀疑您的onselectedindexchanged 事件需要是change

    我已经使用下拉菜单实现了类似的功能,以下是我的代码片段。我希望这可以帮助您找到解决方案:

    1)在html/aspx页面中:

    <select id="systemDD"></select><label for="systemDD">Select a system</label>
    

    2) 在您的 JavaScript 中:

    var p = this.properties;
    var c = p.controls;
    
    // the the drop down items
    c.SystemDropDown = $("#systemDD");
    

    添加事件处理程序:

    $evt.addEventHandler(c.SystemDropDown, "change",
                         this.getDelegate(this._systemDropDownChanged));
    

    方法:

    EditorName.prototype._systemDropDownChanged = 
    function EditorName$Extensions$EditorName$_systemDropDownChanged() {
        var p = this.properties;
        var c = p.controls;
        // get the selected system value
        var selectedSystem = $j(c.SystemDropDown).val(); 
    
    };
    

    我会通过以下方式解决它:

    1. 当您获得下拉元素时,检查您是否将其作为对象
    2. 尝试将 onselectedindexchanged 更改为仅“更改”
    3. 浓烈的酒精饮料 :)

    祝你好运

    【讨论】:

    • 约翰你的把戏总是对我有用。谢谢.. :) 选项 3 也不错 :) :) 有一个问题 john ,你有没有尝试在 javascript 中调用核心服务,这意味着如果在下拉列表中选择一项,我需要填充所有出版物一个列表。我们可以在 Popupreference.js 中实现这个吗?
    • 我不会直接在JS中调用CoreService,而是创建一个Model来调用它。阅读 Dom 关于该主题的博文 - dominic.cronin.nl/weblog/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多