javascript - object literal and Sys.WebForms.PageRequestManager.getInstance().add_endRequest issue -


what i've got asp.net masterpage/contentpage, contentpage utilizes updatepanel updatemode set "conditional". contentpage multiview has 3 views: setup, confirm, , complete. i've got navigation buttons when clicked, go server, need , update updatepanel can come back. problem lies in javascript.

i have following global object literal named page:

page = {      panel : undefined,     currentview: undefined,      buttons : {          : undefined,         cont : undefined      },      views : {          setup       : {},         confirm     : {},         complete    : {}      }  }; 


page.init() function looks this:

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;      }  }; 


, last, not least, gets kicked off by:

// fire events on initial page load. page.init();  // fire events partial postbacks. sys.webforms.pagerequestmanager.getinstance().add_endrequest(page.init); 


issue when first fires page.init() great, however, when click button throws error of: uncaught typeerror: cannot set property 'all' of undefined. i've tried figure out, i'm @ loss. seems though happens any nested object literal off of root of page. immediate properties page.panel work fine, need access page.buttons.all or page.views.setup, throws error. have never seen before.

any ideas out there?

use getter panel property. seeing else appears property of panel should - might losing reference panel during postback, instead of getting object once, every time:

get_panel: function() { return $get("panel_page"); }

again, if have this.panel = $get(myelement) , partial page update destroys node returned this.panel when created object initially, this.panel become undefined. use getter.

hope helps - happy coding.

edit:

actually - @ again, you'll want use getters of properties instead of relying on get_panel().find(..) currentview, example, i'd getter there:

get_currentview: function() { return $get("hidden_currentview", this.get_panel()); }

b


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -