Sometimes there may be a need for identifying each page instance univocally. One ocasion may be, for example, if we want to store something in a session which is specific to a certain page.
What I did was override the Page class' ID property and have it return a unique value for a page that is kept throughout all postbacks. Here is my code:
publicoverride String ID { get { String id = null; if ((this.IsPostBack == true) && (String.IsNullOrEmpty(this.Context.Request.Form["__ID"]) == false)){ id = this.Context.Request.Form["__ID"];} elseif (String.IsNullOrEmpty(this.Context.Items [ "__ID" ] as String) == false){ id = this.Context.Items [ "__ID" ] as String;} else { id = Guid.NewGuid().ToString(); this.Context.Items [ "__ID" ] = id;} return (id);} } protectedoverridevoid OnPreInit(EventArgs e){ this.ClientScript.RegisterHiddenField("__ID", this.ID); base.OnPreInit(e);} |
If you have better solution, just tell me !
0 comments:
Post a Comment