AjaxControlToolkit.TabPanel.prototype._header_onclick выдает ошибку

#asp.net #tabs #ajaxcontroltoolkit

#asp.net #вкладки #ajaxcontroltoolkit

Вопрос:

AjaxControlToolkit.TabPanel.prototype._header_onclick выдает ошибку после обновления ajaxtoolkit 1.0 до 3.0.

Ниже приведен код

  AjaxControlToolkit.TabPanel.prototype._header_onclick = function(e) {
            this.raiseClick();
            if (isValidTabChange()) // add this additional code line to do validation
                this.get_owner().set_activeTab(this);
        };
  

Ошибка заключается в том, что AjaxControlToolkit не определен, и код выдает ошибку. Кто-нибудь сталкивался с этой проблемой? Возможно, я делаю что-то неправильно, я хочу знать, что кто-то уже решал эту проблему раньше.

Комментарии:

1. Я нашел решение для этого. Где-то на пути AjaxControlToolkit пространство имен изменилось на Sys.Extended.UI.TabPanel.prototype. _header_onclick из AjaxControlToolkit. TabPanel.prototype. _header_onclick. Пару дней это был кошмар, потому что я не мог найти решение, пока не открыл код ajax control toolkit и не исследовал TabPanel, я нашел соответствующий код, а пространство имен было Sys.Extended.UI.

Ответ №1:

Они модифицируют пользовательский интерфейс TabContainer на jQuery в AjaxControlToolkit 4.1.7.1213 ИЛИ 7.1213.

Поэтому вам придется использовать actJQuery вместо Sys.Extended.Пользовательский интерфейс для доступа к методам TabPanel.

 actJQuery.ajaxControlToolkit.tabPanel.prototype._headerOnClick = function (e) {
        e.preventDefault();

        if (confirm('Tabs are changing! Click OK to proceed, or click Cancel to remain on the current tab.')) {
            this.options.owner.set_activeTab(this);
            this.raiseClick(this);
            this._header.focus();
        } else return false;
    }
  

Совет: Используйте это, если вы проверяете, изменился ли какой-либо элемент управления в tabpanel

 $('form :input').change(function () {
        $(this).closest('form').data('changed', true);
});
  

Приветствия