/// <summary> /// callback-like function for setting navigation links. designed for call from loop through control collection. /// </summary> /// <param name="theLink"></param> public void setNavigationlinkURL(Control theCtrl) { HyperLinkPlus theLink = (HyperLinkPlus)theCtrl; string urlFile; if (UserValues == null || GlobalValues == null) { throw new Exception("SetNavigationLinkURL, prerequisites not met."); } //We want the same URL as the current page, except change the value for my globalValues. string qstring = UserValues.GetQueryString(theLink.ParamName, theLink.ParamValue); urlFile = (theLink.UrlFile == null) ? Request.Url.LocalPath : Request.ApplicationPath + ((theLink.UrlFile.StartsWith("/")) ? theLink.UrlFile : "/" + theLink.UrlFile ); string url = string.Format("{0}{1}", urlFile, qstring); theLink.NavigateUrl = url; //If the current user's context is already set to use this param/value, //disable this LinkButtonPlus. //E.g. if this LinkButtonPlus is set for STYP=1, and the current // user context is set to STYP=1, then disable this. System.Reflection.PropertyInfo propertyInfo = GlobalValues.GetType(). GetProperty(theLink.ParamName, System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase); SetNavigationLinkSelectedStatus(propertyInfo, theLink); }