У меня есть ASP.NET MasterPage / ContentPage, где ContentPage использует UpdatePanel с UpdateMode, установленным в «Условный».Этот ContentPage в основном представляет собой MultiView, который имеет 3 вида: «Настройка», «Подтверждение» и «Завершение».У меня есть кнопки навигации, которые при нажатии идут на сервер, делают то, что им нужно, и, наконец, обновляют панель обновления, чтобы она могла вернуться.Моя проблема заключается в моем JavaScript.
У меня есть следующий глобальный объектный литерал с именем PAGE
:
PAGE = {
panel : undefined,
currentView: undefined,
buttons : {
all : undefined,
cont : undefined
},
views : {
setup : {},
confirm : {},
complete : {}
}
};
Моя PAGE.init()
функция выглядит так:
PAGE.init = function() { console.log("PAGE.init() fired");
this.panel = $('div[id$="Panel_Page"]');
this.currentView = this.panel.find('input[id$="Hidden_CurrentView"]').val();
this.buttons.all = this.panel.find('input[type="submit"]');
this.buttons.cont = this.panel.find('input[id$="Button_Continue"]');
this.buttons.all.click(function() { PAGE.panel.hide(); });
switch (this.currentView) {
case "confirm" : this.views.confirm.init(); break;
case "complete" : this.views.complete.init(); break;
default : this.views.setup.init(); break;
}
};
И последнее, но не менее важное: все начинается с:
// Fire events on initial page load.
PAGE.init();
// Fire events for partial postbacks.
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(PAGE.init);
Моя проблема заключается в том, что при первом запуске Page.init()
все замечательно, однако, когда вы нажимаете кнопку, сразу выдается ошибка: Uncaught TypeError: Невозможно установить свойство 'all' из неопределенного .Теперь я попытался понять это, но я в растерянности.Кажется, что это происходит с ANY литералом вложенного объекта от корня PAGE
.Непосредственные свойства, такие как PAGE.panel
, работают просто отлично, но как только вам необходим доступ к PAGE.buttons.all
или PAGE.views.setup
, выдается эта ошибка.Я никогда не видел этого раньше.
Есть идеи?