2016-09-09 5 views
1

Я собираюсь привязать свой пользовательский обработчик к событию DropDownClosing в WebDropDown.Расширение событий Infragistics WebDropDown

Я попробовал ниже для образца.

$IG.WebDropDown.prototype = { 
    openDropDown: function() { alert(1); } 
} 

Но он выдает ошибку, будучи проанализирован DOM (неперехваченным ReferenceError: $ IG не определен).

Интересно, что нижеследующий работает, но он показывает предупреждение и пропускает все другие собственные функции. (Например, после предупреждения раскрывающийся не открывается)

$IG.WebDropDown.prototype.openDropDown = function() { alert(1); } 

Цель состоит в том, все webdropdowns в моем приложении следует использовать свою функцию клиента, и я хочу, чтобы настроить это в одном месте, а не добавляя «DropDownClosing» событие клиента для каждого webdropdown.

Каков правильный подход к расширению события в области управления в области инфраструктуры.

ответ

0

Вы можете использовать один и тот же обработчик событий клиента для всех WebDropDowns на странице, но вы все равно должны сказать каждому, чтобы подписаться на этот обработчик и использовать его:

<ig:WebDropDown ID="myDropDown1" runat="server"> 
    <ClientEvents DropDownClosing="dropDownClosing" /> 
</ig:WebDropDown> 

<ig:WebDropDown ID="myDropDown2" runat="server"> 
    <ClientEvents DropDownClosing="dropDownClosing" /> 
</ig:WebDropDown> 

<script type="text/javascript"> 
function dropDownClosing(sender, eventArgs) { 
    alert(1); 
} 
</script> 

Что вы уже пробовали является переопределение метода клиента WebDropDownopenDropDown. Это переопределит функциональность открытия элемента управления, и, таким образом, выпадающее меню не будет открываться, если вы не выполните повторное внедрение функций самостоятельно или не используйте кешированную ссылку на исходную реализацию. Это не то же самое, что привязывать обработчик событий.