public CopyBaseAttributes ( |
||
controlSrc | ||
Результат | void |
void RenderBeginTag(HtmlTextWriter w, Style s, WebControl wc) { WebControl c; switch (RepeatLayout) { case RepeatLayout.Table: c = new Table(); break; case RepeatLayout.Flow: c = new Label(); break; case RepeatLayout.OrderedList: c = new WebControl(HtmlTextWriterTag.Ol); break; case RepeatLayout.UnorderedList: c = new WebControl(HtmlTextWriterTag.Ul); break; default: throw new InvalidOperationException(String.Format("Unsupported RepeatLayout value '{0}'.", RepeatLayout)); } c.ID = wc.ClientID; c.CopyBaseAttributes(wc); c.ApplyStyle(s); c.Enabled = wc.IsEnabled; c.RenderBeginTag(w); }
internal static void CopyBaseAttributesToInnerControl(WebControl control, WebControl child) { short oldTab = control.TabIndex; string oldAccess = control.AccessKey; try { control.AccessKey = String.Empty; control.TabIndex = 0; child.CopyBaseAttributes(control); } finally { control.TabIndex = oldTab; control.AccessKey = oldAccess; } }
/// <devdoc> /// Sets the visiblity, style, and other properties of child controls. /// </devdoc> private void SetChildProperties() { EnsureChildControls(); // Set all buttons to nonvisible, then later set the selected button to visible _logInLinkButton.Visible = false; _logInImageButton.Visible = false; _logOutLinkButton.Visible = false; _logOutImageButton.Visible = false; WebControl visibleControl = null; bool loggedIn = LoggedIn; if (loggedIn) { string logoutImageUrl = LogoutImageUrl; if (logoutImageUrl.Length > 0) { _logOutImageButton.AlternateText = LogoutText; _logOutImageButton.ImageUrl = logoutImageUrl; visibleControl = _logOutImageButton; } else { _logOutLinkButton.Text = LogoutText; visibleControl = _logOutLinkButton; } } else { string loginImageUrl = LoginImageUrl; if (loginImageUrl.Length > 0) { _logInImageButton.AlternateText = LoginText; _logInImageButton.ImageUrl = loginImageUrl; visibleControl = _logInImageButton; } else { _logInLinkButton.Text = LoginText; visibleControl = _logInLinkButton; } } visibleControl.CopyBaseAttributes(this); visibleControl.ApplyStyle(ControlStyle); visibleControl.Visible = true; }
protected override void OnPreRender(System.EventArgs e) { base.OnPreRender(e); WebControl div = new WebControl(System.Web.UI.HtmlTextWriterTag.Div); LayoutTemplate.InstantiateIn(div); div.CopyBaseAttributes(this); div.CssClass = this.CssClass; for (int i = 0; i < this.Controls[0].Controls.Count; i++ ) { if (Controls[0].Controls[i] as ITextControl != null) { ((ITextControl)div.Controls[i]).Text = ((ITextControl)Controls[0].Controls[i]).Text; } } Controls.Clear(); Controls.Add(div); }
private void SetChildProperties() { this.EnsureChildControls(); this._logInLinkButton.Visible = false; this._logInImageButton.Visible = false; this._logOutLinkButton.Visible = false; this._logOutImageButton.Visible = false; WebControl control = null; if (this.LoggedIn) { string logoutImageUrl = this.LogoutImageUrl; if (logoutImageUrl.Length > 0) { this._logOutImageButton.AlternateText = this.LogoutText; this._logOutImageButton.ImageUrl = logoutImageUrl; control = this._logOutImageButton; } else { this._logOutLinkButton.Text = this.LogoutText; control = this._logOutLinkButton; } } else { string loginImageUrl = this.LoginImageUrl; if (loginImageUrl.Length > 0) { this._logInImageButton.AlternateText = this.LoginText; this._logInImageButton.ImageUrl = loginImageUrl; control = this._logInImageButton; } else { this._logInLinkButton.Text = this.LoginText; control = this._logInLinkButton; } } control.CopyBaseAttributes(this); control.ApplyStyle(base.ControlStyle); control.Visible = true; }
void RenderBeginTag (HtmlTextWriter w, Style s, WebControl wc) { WebControl c; switch (RepeatLayout) { case RepeatLayout.Table: c = new Table (); break; case RepeatLayout.Flow: c = new Label (); break; case RepeatLayout.OrderedList: c = new WebControl (HtmlTextWriterTag.Ol); break; case RepeatLayout.UnorderedList: c = new WebControl (HtmlTextWriterTag.Ul); break; default: throw new InvalidOperationException (String.Format ("Unsupported RepeatLayout value '{0}'.", RepeatLayout)); } c.ID = wc.ClientID; c.CopyBaseAttributes (wc); c.ApplyStyle (s); c.Enabled = wc.IsEnabled; c.RenderBeginTag (w); }
/// <include file='doc\RepeatInfo.uex' path='docs/doc[@for="RepeatInfo.RenderHorizontalRepeater"]/*' /> /// <devdoc> /// </devdoc> private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl) { Debug.Assert(outerTableImplied == false, "Cannot use outer implied table with Horizontal layout"); int itemCount = user.RepeatedItemCount; int totalColumns = repeatColumns; int currentColumn = 0; if (totalColumns == 0) { // 0 implies a complete horizontal repetition without any // column count constraints totalColumns = itemCount; } WebControl outerControl = null; bool tableLayout = false; switch (repeatLayout) { case RepeatLayout.Table: outerControl = new Table(); tableLayout = true; break; case RepeatLayout.Flow: outerControl = new WebControl(HtmlTextWriterTag.Span); break; } bool separators = user.HasSeparators; // use ClientID (and not ID) since we want to render out the fully qualified client id // even though this outer control will not be parented to the control hierarchy outerControl.ID = baseControl.ClientID; outerControl.CopyBaseAttributes(baseControl); outerControl.ApplyStyle(controlStyle); outerControl.RenderBeginTag(writer); if (user.HasHeader) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); // add attributes to render for TD if ((totalColumns != 1) || separators) { int columnSpan = totalColumns; if (separators) { columnSpan += totalColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Header, -1); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Header, -1, this, writer); if (tableLayout) { // render end tag for TD writer.RenderEndTag(); // render end tag for TR writer.RenderEndTag(); } else { if (totalColumns < itemCount) { // we have multiple rows, so have a break between the header and first row. writer.WriteFullBeginTag("br"); } } } for (int i = 0; i < itemCount; i++) { if (tableLayout && (currentColumn == 0)) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); } if (tableLayout) { // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Item, i); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Item, i, this, writer); if (tableLayout) { // render end tag for TD writer.RenderEndTag(); } if (separators && (i != (itemCount - 1))) { if (tableLayout) { Style style = user.GetItemStyle(ListItemType.Separator, i); if (style != null) { style.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Separator, i, this, writer); if (tableLayout) { writer.RenderEndTag(); } } currentColumn++; if ((currentColumn == totalColumns) || (i == itemCount - 1)) { if (tableLayout) { // End tag for TR writer.RenderEndTag(); } else { // write out the <br> after rows when there are multiple rows if (totalColumns < itemCount) { writer.WriteFullBeginTag("br"); } } currentColumn = 0; } } if (user.HasFooter) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((totalColumns != 1) || separators) { // add attributes to render for TD int columnSpan = totalColumns; if (separators) { columnSpan += totalColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Footer, -1); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Footer, -1, this, writer); if (tableLayout) { // render end tag for TR and TD writer.RenderEndTag(); writer.RenderEndTag(); } } outerControl.RenderEndTag(writer); }
/// <devdoc> /// </devdoc> private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl) { Debug.Assert(outerTableImplied == false, "Cannot use outer implied table with Horizontal layout"); int itemCount = user.RepeatedItemCount; int totalColumns = repeatColumns; int currentColumn = 0; if (totalColumns == 0) { // 0 implies a complete horizontal repetition without any // column count constraints totalColumns = itemCount; } WebControl outerControl = null; bool tableLayout = false; switch (repeatLayout) { case RepeatLayout.Table: outerControl = new Table(); if (Caption.Length != 0) { ((Table)outerControl).Caption = Caption; ((Table)outerControl).CaptionAlign = CaptionAlign; } tableLayout = true; break; case RepeatLayout.Flow: outerControl = new WebControl(HtmlTextWriterTag.Span); break; } bool separators = user.HasSeparators; // use ClientID (and not ID) since we want to render out the fully qualified client id // even though this outer control will not be parented to the control hierarchy outerControl.ID = baseControl.ClientID; outerControl.CopyBaseAttributes(baseControl); outerControl.ApplyStyle(controlStyle); outerControl.RenderBeginTag(writer); if (user.HasHeader) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); // add attributes to render for TD/TH if ((totalColumns != 1) || separators) { int columnSpan = totalColumns; if (separators) { columnSpan += totalColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } if (useAccessibleHeader) { writer.AddAttribute(HtmlTextWriterAttribute.Scope, "col"); } // add style attributes to render for TD/TH Style style = user.GetItemStyle(ListItemType.Header, -1); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag if (useAccessibleHeader) { writer.RenderBeginTag(HtmlTextWriterTag.Th); } else { writer.RenderBeginTag(HtmlTextWriterTag.Td); } } user.RenderItem(ListItemType.Header, -1, this, writer); if (tableLayout) { // render end tags TD/TH and TR writer.RenderEndTag(); writer.RenderEndTag(); } else { if (totalColumns < itemCount) { // we have multiple rows, so have a break between the header and first row. if (EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } } for (int i = 0; i < itemCount; i++) { if (tableLayout && (currentColumn == 0)) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); } if (tableLayout) { // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Item, i); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Item, i, this, writer); if (tableLayout) { // render end tag for TD writer.RenderEndTag(); } if (separators && (i != (itemCount - 1))) { if (tableLayout) { Style style = user.GetItemStyle(ListItemType.Separator, i); if (style != null) { style.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Separator, i, this, writer); if (tableLayout) { writer.RenderEndTag(); } } currentColumn++; // on the last line, fill in the rest of the empty spots with <td/>s. // If there were separators, we need twice as many plus one to accomodate for // the last item not having a separator after it. if (tableLayout && i == itemCount - 1) { int unfilledColumns = totalColumns - currentColumn; if (separators == true) { int unfilledColumnsWithSeparators = (unfilledColumns * 2) + 1; if (unfilledColumnsWithSeparators > unfilledColumns) { unfilledColumns = unfilledColumnsWithSeparators; } } for (int k = 0; k < unfilledColumns; k++) { writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); } } if ((currentColumn == totalColumns) || (i == itemCount - 1)) { if (tableLayout) { // End tag for TR writer.RenderEndTag(); } else { // write out the <br> after rows when there are multiple rows if (totalColumns < itemCount) { if (EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } currentColumn = 0; } } if (user.HasFooter) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((totalColumns != 1) || separators) { // add attributes to render for TD int columnSpan = totalColumns; if (separators) { columnSpan += totalColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Footer, -1); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Footer, -1, this, writer); if (tableLayout) { // render end tag for TR and TD writer.RenderEndTag(); writer.RenderEndTag(); } } outerControl.RenderEndTag(writer); }
internal static void CopyBaseAttributesToInnerControl(WebControl control, WebControl child) { short tabIndex = control.TabIndex; string accessKey = control.AccessKey; try { control.AccessKey = string.Empty; control.TabIndex = 0; child.CopyBaseAttributes(control); } finally { control.TabIndex = tabIndex; control.AccessKey = accessKey; } }
/// <summary> /// Generates the target-specific inner markup for the Web control to which the control adapter is attached. /// </summary> /// <param name="writer">The <see cref="T:System.Web.UI.HtmlTextWriter" /> containing methods to render the target-specific output.</param> protected override void RenderContents( System.Web.UI.HtmlTextWriter writer ) { RadioButtonList rbl = Control as RadioButtonList; if ( rbl != null ) { PostBackOptions postBackOption = null; if ( rbl.AutoPostBack ) { postBackOption = new PostBackOptions( rbl, string.Empty ); if ( rbl.CausesValidation && this.Page.GetValidators( rbl.ValidationGroup ).Count > 0 ) { postBackOption.PerformValidation = true; postBackOption.ValidationGroup = rbl.ValidationGroup; } if ( this.Page.Form != null ) { postBackOption.AutoPostBack = true; } } WebControl control = new WebControl(HtmlTextWriterTag.Span); control.ID = rbl.ClientID; control.CopyBaseAttributes(rbl); control.RenderBeginTag(writer); int i = 0; foreach ( ListItem li in rbl.Items ) { writer.WriteLine(); if ( rbl.RepeatDirection == RepeatDirection.Vertical ) { writer.AddAttribute( "class", "radio" ); writer.RenderBeginTag( HtmlTextWriterTag.Div ); } else { writer.AddAttribute( "class", "radio-inline" ); } writer.RenderBeginTag( HtmlTextWriterTag.Label ); string itemId = string.Format( "{0}_{1}", rbl.ClientID, i++ ); writer.AddAttribute( "id", itemId ); writer.AddAttribute( "type", "radio" ); writer.AddAttribute( "name", rbl.UniqueID ); writer.AddAttribute( "value", li.Value ); if ( li.Selected ) { writer.AddAttribute( "checked", "checked" ); } foreach ( var attributeKey in li.Attributes.Keys ) { var key = attributeKey as string; writer.AddAttribute( key, li.Attributes[key] ); } if ( postBackOption != null ) { writer.AddAttribute( HtmlTextWriterAttribute.Onclick, Page.ClientScript.GetPostBackEventReference( postBackOption, true ) ); } writer.RenderBeginTag( HtmlTextWriterTag.Input ); writer.RenderEndTag(); writer.Write( li.Text ); writer.RenderEndTag(); // Label if ( rbl.RepeatDirection == RepeatDirection.Vertical ) { writer.RenderEndTag(); // Div } if ( rbl.Page != null ) { rbl.Page.ClientScript.RegisterForEventValidation( rbl.UniqueID, li.Value ); } } control.RenderEndTag( writer ); if ( rbl.Page != null ) { rbl.Page.ClientScript.RegisterForEventValidation( rbl.UniqueID ); } } }
/// <devdoc> /// </devdoc> private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl) { Debug.Assert(outerTableImplied == false, "Cannot use outer implied table with Horizontal layout"); int itemCount = user.RepeatedItemCount; int totalColumns = repeatColumns; int currentColumn = 0; if (totalColumns == 0) { // 0 implies a complete horizontal repetition without any // column count constraints totalColumns = itemCount; } WebControl outerControl = null; bool tableLayout = false; switch (repeatLayout) { case RepeatLayout.Table: outerControl = new Table(); if (Caption.Length != 0) { ((Table)outerControl).Caption = Caption; ((Table)outerControl).CaptionAlign = CaptionAlign; } tableLayout = true; break; case RepeatLayout.Flow: outerControl = new WebControl(HtmlTextWriterTag.Span); break; } bool separators = user.HasSeparators; // use ClientID (and not ID) since we want to render out the fully qualified client id // even though this outer control will not be parented to the control hierarchy outerControl.ID = baseControl.ClientID; outerControl.CopyBaseAttributes(baseControl); outerControl.ApplyStyle(controlStyle); outerControl.RenderBeginTag(writer); if (user.HasHeader) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); // add attributes to render for TD/TH if ((totalColumns != 1) || separators) { int columnSpan = totalColumns; if (separators) columnSpan += totalColumns; writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } if (useAccessibleHeader) { writer.AddAttribute(HtmlTextWriterAttribute.Scope, "col"); } // add style attributes to render for TD/TH Style style = user.GetItemStyle(ListItemType.Header, -1); if (style != null) { style.AddAttributesToRender(writer); } // render begin tag if (useAccessibleHeader) { writer.RenderBeginTag(HtmlTextWriterTag.Th); } else { writer.RenderBeginTag(HtmlTextWriterTag.Td); } } user.RenderItem(ListItemType.Header, -1, this, writer); if (tableLayout) { // render end tags TD/TH and TR writer.RenderEndTag(); writer.RenderEndTag(); } else { if (totalColumns < itemCount) { // we have multiple rows, so have a break between the header and first row. if (EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } } for (int i = 0; i < itemCount; i++) { if (tableLayout && (currentColumn == 0)) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); } if (tableLayout) { // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Item, i); if (style != null) style.AddAttributesToRender(writer); // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Item, i, this, writer); if (tableLayout) { // render end tag for TD writer.RenderEndTag(); } if (separators && (i != (itemCount - 1))) { if (tableLayout) { Style style = user.GetItemStyle(ListItemType.Separator, i); if (style != null) style.AddAttributesToRender(writer); writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Separator, i, this, writer); if (tableLayout) writer.RenderEndTag(); } currentColumn++; // on the last line, fill in the rest of the empty spots with <td/>s. // If there were separators, we need twice as many plus one to accomodate for // the last item not having a separator after it. if (tableLayout && i == itemCount - 1) { int unfilledColumns = totalColumns - currentColumn; if (separators == true) { int unfilledColumnsWithSeparators = (unfilledColumns * 2) + 1; if (unfilledColumnsWithSeparators > unfilledColumns) { unfilledColumns = unfilledColumnsWithSeparators; } } for (int k = 0; k < unfilledColumns; k++) { writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); } } if ((currentColumn == totalColumns) || (i == itemCount - 1)) { if (tableLayout) { // End tag for TR writer.RenderEndTag(); } else { // write out the <br> after rows when there are multiple rows if (totalColumns < itemCount) { if (EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } currentColumn = 0; } } if (user.HasFooter) { if (tableLayout) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((totalColumns != 1) || separators) { // add attributes to render for TD int columnSpan = totalColumns; if (separators) columnSpan += totalColumns; writer.AddAttribute(HtmlTextWriterAttribute.Colspan, columnSpan.ToString(NumberFormatInfo.InvariantInfo)); } // add style attributes to render for TD Style style = user.GetItemStyle(ListItemType.Footer, -1); if (style != null) style.AddAttributesToRender(writer); // render begin tag for TD writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Footer, -1, this, writer); if (tableLayout) { // render end tag for TR and TD writer.RenderEndTag(); writer.RenderEndTag(); } } outerControl.RenderEndTag(writer); }
private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl) { int repeatedItemCount = user.RepeatedItemCount; int repeatColumns = this.repeatColumns; int num3 = 0; if (repeatColumns == 0) { repeatColumns = repeatedItemCount; } WebControl control = null; bool flag = false; switch (this.repeatLayout) { case System.Web.UI.WebControls.RepeatLayout.Table: control = new Table(); if (this.Caption.Length != 0) { ((Table)control).Caption = this.Caption; ((Table)control).CaptionAlign = this.CaptionAlign; } flag = true; break; case System.Web.UI.WebControls.RepeatLayout.Flow: control = new WebControl(HtmlTextWriterTag.Span); break; } bool hasSeparators = user.HasSeparators; control.ID = baseControl.ClientID; control.CopyBaseAttributes(baseControl); control.ApplyStyle(controlStyle); control.RenderBeginTag(writer); if (user.HasHeader) { if (flag) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((repeatColumns != 1) || hasSeparators) { int num4 = repeatColumns; if (hasSeparators) { num4 += repeatColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, num4.ToString(NumberFormatInfo.InvariantInfo)); } if (this.useAccessibleHeader) { writer.AddAttribute(HtmlTextWriterAttribute.Scope, "col"); } Style itemStyle = user.GetItemStyle(ListItemType.Header, -1); if (itemStyle != null) { itemStyle.AddAttributesToRender(writer); } if (this.useAccessibleHeader) { writer.RenderBeginTag(HtmlTextWriterTag.Th); } else { writer.RenderBeginTag(HtmlTextWriterTag.Td); } } user.RenderItem(ListItemType.Header, -1, this, writer); if (flag) { writer.RenderEndTag(); writer.RenderEndTag(); } else if (repeatColumns < repeatedItemCount) { if (this.EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } for (int i = 0; i < repeatedItemCount; i++) { if (flag && (num3 == 0)) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); } if (flag) { Style style2 = user.GetItemStyle(ListItemType.Item, i); if (style2 != null) { style2.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Item, i, this, writer); if (flag) { writer.RenderEndTag(); } if (hasSeparators && (i != (repeatedItemCount - 1))) { if (flag) { Style style3 = user.GetItemStyle(ListItemType.Separator, i); if (style3 != null) { style3.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Separator, i, this, writer); if (flag) { writer.RenderEndTag(); } } num3++; if (flag && (i == (repeatedItemCount - 1))) { int num6 = repeatColumns - num3; if (hasSeparators) { int num7 = (num6 * 2) + 1; if (num7 > num6) { num6 = num7; } } for (int j = 0; j < num6; j++) { writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); } } if ((num3 == repeatColumns) || (i == (repeatedItemCount - 1))) { if (flag) { writer.RenderEndTag(); } else if (repeatColumns < repeatedItemCount) { if (this.EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } num3 = 0; } } if (user.HasFooter) { if (flag) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((repeatColumns != 1) || hasSeparators) { int num9 = repeatColumns; if (hasSeparators) { num9 += repeatColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, num9.ToString(NumberFormatInfo.InvariantInfo)); } Style style4 = user.GetItemStyle(ListItemType.Footer, -1); if (style4 != null) { style4.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Footer, -1, this, writer); if (flag) { writer.RenderEndTag(); writer.RenderEndTag(); } } control.RenderEndTag(writer); }
private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl) { int repeatedItemCount = user.RepeatedItemCount; int repeatColumns = this.repeatColumns; int num3 = 0; if (repeatColumns == 0) { repeatColumns = repeatedItemCount; } WebControl control = null; bool flag = false; switch (this.repeatLayout) { case System.Web.UI.WebControls.RepeatLayout.Table: control = new Table(); if (this.Caption.Length != 0) { ((Table) control).Caption = this.Caption; ((Table) control).CaptionAlign = this.CaptionAlign; } flag = true; break; case System.Web.UI.WebControls.RepeatLayout.Flow: control = new WebControl(HtmlTextWriterTag.Span); break; } bool hasSeparators = user.HasSeparators; control.ID = baseControl.ClientID; control.CopyBaseAttributes(baseControl); control.ApplyStyle(controlStyle); control.RenderBeginTag(writer); if (user.HasHeader) { if (flag) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((repeatColumns != 1) || hasSeparators) { int num4 = repeatColumns; if (hasSeparators) { num4 += repeatColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, num4.ToString(NumberFormatInfo.InvariantInfo)); } if (this.useAccessibleHeader) { writer.AddAttribute(HtmlTextWriterAttribute.Scope, "col"); } Style itemStyle = user.GetItemStyle(ListItemType.Header, -1); if (itemStyle != null) { itemStyle.AddAttributesToRender(writer); } if (this.useAccessibleHeader) { writer.RenderBeginTag(HtmlTextWriterTag.Th); } else { writer.RenderBeginTag(HtmlTextWriterTag.Td); } } user.RenderItem(ListItemType.Header, -1, this, writer); if (flag) { writer.RenderEndTag(); writer.RenderEndTag(); } else if (repeatColumns < repeatedItemCount) { if (this.EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } } for (int i = 0; i < repeatedItemCount; i++) { if (flag && (num3 == 0)) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); } if (flag) { Style style2 = user.GetItemStyle(ListItemType.Item, i); if (style2 != null) { style2.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Item, i, this, writer); if (flag) { writer.RenderEndTag(); } if (hasSeparators && (i != (repeatedItemCount - 1))) { if (flag) { Style style3 = user.GetItemStyle(ListItemType.Separator, i); if (style3 != null) { style3.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Separator, i, this, writer); if (flag) { writer.RenderEndTag(); } } num3++; if (flag && (i == (repeatedItemCount - 1))) { int num6 = repeatColumns - num3; if (hasSeparators) { int num7 = (num6 * 2) + 1; if (num7 > num6) { num6 = num7; } } for (int j = 0; j < num6; j++) { writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderEndTag(); } } if ((num3 == repeatColumns) || (i == (repeatedItemCount - 1))) { if (flag) { writer.RenderEndTag(); } else if (repeatColumns < repeatedItemCount) { if (this.EnableLegacyRendering) { writer.WriteObsoleteBreak(); } else { writer.WriteBreak(); } } num3 = 0; } } if (user.HasFooter) { if (flag) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); if ((repeatColumns != 1) || hasSeparators) { int num9 = repeatColumns; if (hasSeparators) { num9 += repeatColumns; } writer.AddAttribute(HtmlTextWriterAttribute.Colspan, num9.ToString(NumberFormatInfo.InvariantInfo)); } Style style4 = user.GetItemStyle(ListItemType.Footer, -1); if (style4 != null) { style4.AddAttributesToRender(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); } user.RenderItem(ListItemType.Footer, -1, this, writer); if (flag) { writer.RenderEndTag(); writer.RenderEndTag(); } } control.RenderEndTag(writer); }