Example #1
0
        /// <internalonly/>
        /// <devdoc>
        /// </devdoc>
        protected internal override void RenderChildren(HtmlTextWriter writer)
        {
            // We need to register the script here since other controls might register
            // for focus during PreRender
            Page page = Page;

            if (page != null)
            {
                page.OnFormRender();
                page.BeginFormRender(writer, UniqueID);
            }

            // DevDiv Bugs 154630: move custom hidden fields to the begining of the form
            HttpWriter httpWriter = writer.InnerWriter as HttpWriter;

            if (page != null && httpWriter != null && RuntimeConfig.GetConfig(Context).Pages.RenderAllHiddenFieldsAtTopOfForm)
            {
                // If the response is flushed or cleared during render, we won't be able
                // to move the hidden fields.  Set HasBeenClearedRecently to false and
                // then check again when we're ready to move the fields.
                httpWriter.HasBeenClearedRecently = false;

                // Remember the index where the form begins
                int formBeginIndex = httpWriter.GetResponseBufferCountAfterFlush();

                base.RenderChildren(writer);

                // Remember the index where the custom hidden fields begin
                int fieldsBeginIndex = httpWriter.GetResponseBufferCountAfterFlush();

                page.EndFormRenderHiddenFields(writer, UniqueID);

                // we can only move the hidden fields if the response has not been flushed or cleared
                if (!httpWriter.HasBeenClearedRecently)
                {
                    int fieldsEndIndex = httpWriter.GetResponseBufferCountAfterFlush();
                    httpWriter.MoveResponseBufferRangeForward(fieldsBeginIndex, fieldsEndIndex - fieldsBeginIndex, formBeginIndex);
                }

                page.EndFormRenderArrayAndExpandoAttribute(writer, UniqueID);
                page.EndFormRenderPostBackAndWebFormsScript(writer, UniqueID);
                page.OnFormPostRender(writer);
            }
            else
            {
                base.RenderChildren(writer);

                if (page != null)
                {
                    page.EndFormRender(writer, UniqueID);
                    page.OnFormPostRender(writer);
                }
            }
        }
        protected internal override void RenderChildren(HtmlTextWriter writer)
        {
            Page page = this.Page;

            if (page != null)
            {
                page.OnFormRender();
                page.BeginFormRender(writer, this.UniqueID);
            }
            HttpWriter innerWriter = writer.InnerWriter as HttpWriter;

            if (((page != null) && (innerWriter != null)) && RuntimeConfig.GetConfig(this.Context).Pages.RenderAllHiddenFieldsAtTopOfForm)
            {
                innerWriter.HasBeenClearedRecently = false;
                int responseBufferCountAfterFlush = innerWriter.GetResponseBufferCountAfterFlush();
                base.RenderChildren(writer);
                int srcIndex = innerWriter.GetResponseBufferCountAfterFlush();
                page.EndFormRenderHiddenFields(writer, this.UniqueID);
                if (!innerWriter.HasBeenClearedRecently)
                {
                    int num3 = innerWriter.GetResponseBufferCountAfterFlush();
                    innerWriter.MoveResponseBufferRangeForward(srcIndex, num3 - srcIndex, responseBufferCountAfterFlush);
                }
                page.EndFormRenderArrayAndExpandoAttribute(writer, this.UniqueID);
                page.EndFormRenderPostBackAndWebFormsScript(writer, this.UniqueID);
                page.OnFormPostRender(writer);
            }
            else
            {
                base.RenderChildren(writer);
                if (page != null)
                {
                    page.EndFormRender(writer, this.UniqueID);
                    page.OnFormPostRender(writer);
                }
            }
        }