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