【发布时间】:2011-10-10 15:35:31
【问题描述】:
我得到的是 ASP.NET MasterPage/ContentPage,其中 ContentPage 使用 UpdatePanel 并将 UpdateMode 设置为“Conditional”。这个 ContentPage 基本上是一个 MultiView,它有 3 个视图:Setup、Confirm 和 Complete。我有导航按钮,点击后,转到服务器,做他们需要做的事情,最后更新 UpdatePanel 以便它可以回来。我的问题在于我的 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: Cannot set property 'all' of undefined。现在我试图弄清楚这一点,但我不知所措。似乎这发生在PAGE 根的ANY 嵌套对象文字上。像PAGE.panel 这样的直接属性工作得很好,但是一旦你需要访问PAGE.buttons.all 或PAGE.views.setup,它就会抛出这个错误。我以前从未见过这种情况。
有什么想法吗?
【问题讨论】:
标签: javascript jquery asp.net updatepanel master-pages