Ejemplo n.º 1
0
        public string GetPostBackEventReference(PostBackOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            string actionUrl = options.ActionUrl;

            if (actionUrl == null && options.ValidationGroup == null && !options.TrackFocus &&
                !options.AutoPostBack && !options.PerformValidation)
            {
                if (!options.ClientSubmit)
                {
                    return(null);
                }

                if (options.RequiresJavaScriptProtocol)
                {
                    return(GetPostBackClientHyperlink(options.TargetControl, options.Argument));
                }
                else
                {
                    return(GetPostBackEventReference(options.TargetControl, options.Argument));
                }
            }

            RegisterWebFormClientScript();

            Page        page    = OwnerPage;
            HttpRequest req     = page.RequestInternal;
            Uri         pageUrl = req != null ? req.Url : null;

            if (pageUrl != null)
            {
                RegisterHiddenField(Page.PreviousPageID, pageUrl.AbsolutePath);
            }

            if (options.TrackFocus)
            {
                RegisterHiddenField(Page.LastFocusID, String.Empty);
            }

            string prefix = options.RequiresJavaScriptProtocol ? "javascript:" : String.Empty;

            if (page.IsMultiForm)
            {
                prefix += page.theForm + ".";
            }

            return(prefix + "WebForm_DoPostback(" +
                   ClientScriptManager.GetScriptLiteral(options.TargetControl.UniqueID) + "," +
                   ClientScriptManager.GetScriptLiteral(options.Argument) + "," +
                   ClientScriptManager.GetScriptLiteral(actionUrl) + "," +
                   ClientScriptManager.GetScriptLiteral(options.AutoPostBack) + "," +
                   ClientScriptManager.GetScriptLiteral(options.PerformValidation) + "," +
                   ClientScriptManager.GetScriptLiteral(options.TrackFocus) + "," +
                   ClientScriptManager.GetScriptLiteral(options.ClientSubmit) + "," +
                   ClientScriptManager.GetScriptLiteral(options.ValidationGroup) + ")");
        }