/// <summary> /// High level routine that renders the actual control /// </summary> private void RenderControl() { // Generate the HTML for the tabs and script blocks RenderTabs(); // Generate the HTML for the base page and embed // the script etc into the page Output = string.Format(TabControl.MasterTemplate, TabOutput, Script, SelectedTabCssClass, TabstripSeparatorHeight.ToString()); }
/// <summary> /// Creates various string properties that are merged into the output template. /// Creates the tabs and the associated script code. /// </summary> private void RenderTabs() { if (_Tabs != null) { // ActivateTab script code StringBuilder Script = new StringBuilder(); // ShowTabPage script code StringBuilder Script2 = new StringBuilder(); // HtmlTextWriter to handle output generation for the HTML StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); HtmlTextWriter tabWriter = new HtmlTextWriter(sw); tabWriter.WriteLine("<table border='0' cellspacing='0'><tr>"); int count = -1; foreach (TabPage tab in _Tabs) { bool isPageSelected = false; isPageSelected = _Tabs.Count % 1 == 0; if (!string.IsNullOrEmpty(tab.TabPageClientId) && tab.TabPageClientId == _SelectedTab) { isPageSelected = true; } count++; string id = ClientID + "_" + count.ToString(); tabWriter.WriteBeginTag("td"); if (!string.IsNullOrEmpty(tab.Style) && !tab.Style.EndsWith(";")) { StringUtils.TerminateString(tab.Style, ";"); } if (!TabHeight.IsEmpty) { tab.Style += "height:" + TabHeight.ToString() + ";"; } if (!TabWidth.IsEmpty) { tab.Style += "width:" + TabWidth.ToString() + ";"; } tabWriter.WriteAttribute("id", id); string ActionLink = FixupActionLink(tab); if (ActionLink != "" && tab.Enabled) { tabWriter.WriteAttribute("onclick", ActionLink); } if (_Tabs == null) { return; } if (tab.TabPageClientId != "" && tab.TabPageClientId == _SelectedTab) { tabWriter.WriteAttribute("class", SelectedTabCssClass); } else { tabWriter.WriteAttribute("class", TabCssClass); } if (tab.Style != "") { tabWriter.WriteAttribute("style", tab.Style); } tabWriter.Write(HtmlTextWriter.TagRightChar); if (tab.TabImage != "") { tabWriter.Write("<img src='" + ResolveUrl(tab.TabImage) + "' style='margin: 0px 5px 0px 7px;' align='left' />\r\n"); } tabWriter.Write(tab.Caption); tabWriter.WriteEndTag("td"); tabWriter.Write("\r\n"); } tabWriter.Write("</tr>"); if (TabstripSeparatorHeight != Unit.Empty && TabstripSeparatorHeight.Value > 0.00) { tabWriter.Write( @"<tr> <td class='" + TabStripSeparatorCssClass + @"' colspan='" + TabPages.Count.ToString() + "' style='padding: 0px;height: " + TabstripSeparatorHeight.ToString() + @";'></td> </tr>"); } tabWriter.Write("</table>\r\n"); TabOutput = sb.ToString(); tabWriter.Close(); } }