Ejemplo n.º 1
0
        public static void ToExcelF(System.Web.UI.HtmlControls.HtmlTable Table1, string FileName, string Title, string Head, string foot)
        {
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls"); //filename=Report.xls
            HttpContext.Current.Response.Charset         = "UTF-8";                                                        //UTF-8
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            HttpContext.Current.Response.ContentType     = "application/vnd.ms-excel";
            //msword;image/JPEG;text/HTML;image/GIF;vnd.ms-excel

            //HttpContext.Current.Application.Page.EnableViewState = false; //Turn off the view state.

            System.IO.StringWriter       tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

            hw.WriteLine(@"<HTML>");
            hw.WriteLine(@"<BODY>");
            hw.WriteLine("<b>" + Title + "</b>");

            //string Head = @"<table border=1><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>";
            if (Head != "")
            {
                hw.WriteLine(Head);
            }
            Table1.RenderControl(hw);

            if (foot != "")
            {
                hw.WriteLine(foot);
            }
            hw.WriteLine(@"</BODY>");
            hw.WriteLine(@"</HTML>");
            hw.Flush();
            hw.Close();
            HttpContext.Current.Response.Write(tw.ToString()); //Write the HTML back to the browser.
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 2
0
        //- #Render -//
        /// <summary>
        /// Removes viewstate, event validation and the ASP.NET form element from the page
        /// </summary>
        /// <param name="originalWriter">The original writer.</param>
        protected override void Render(HtmlTextWriter originalWriter)
        {
            var stringWriter = new StringWriter(CultureInfo.CurrentCulture);
            var htmlTextWriter = new HtmlTextWriter(stringWriter);
            //+
            base.Render(htmlTextWriter);
            htmlTextWriter.Close();
            //+
            String data = stringWriter.GetStringBuilder().ToString();
            String pattern = @"<div>([\r\n\s]*)<input type=""hidden"" name=""__VIEWSTATE"" id=""__VIEWSTATE"" value=""(?<viewstate>[+/=a-z0-9]+)"" />([\r\n\s]*)</div>";
            data = Regex.Replace(data, pattern, String.Empty, RegexOptions.IgnoreCase);
            pattern = @"<div>([\r\n\s]*)<input type=""hidden"" name=""__EVENTVALIDATION"" id=""__EVENTVALIDATION"" value=""(?<eventvalidation>[+/=a-z0-9]+)"" />([\r\n\s]*)</div>";
            data = Regex.Replace(data, pattern, String.Empty, RegexOptions.IgnoreCase);
            pattern = @"<form name=""ctl([\d]+)"" method=""post"" action="""" id=""ctl([\d]+)"">([\r\n\s]*)";
            data = Regex.Replace(data, pattern, String.Empty, RegexOptions.IgnoreCase);
            if (!EnableState)
            {
                pattern = @"<form name=""ctl([\d]+)"" method=""post"">([\r\n\s]*)";
                data = Regex.Replace(data, pattern, String.Empty, RegexOptions.IgnoreCase);
            }
            pattern = @"([\r\n\s]*)</form>";
            String replacement = String.Empty;
            if (EnableState)
            {
                replacement = new StateArea().GetRenderData() + @"
</form>";
            }
            data = Regex.Replace(data, pattern, replacement, RegexOptions.IgnoreCase);
            //+
            originalWriter.Write(data);
        }
 protected void ExportInventoryEquip_Click(object sender, EventArgs e)
 {
     try
     {
         string    type     = HttpContext.Current.Request.QueryString["type"];
         DataTable dt       = JsonToDataTable(hidExcelCenter.Value);
         string    fileName = HttpUtility.UrlDecode("盘点单", System.Text.Encoding.UTF8) +
                              DateTime.Now.ToShortDateString() + ".xls";
         System.IO.StringWriter       tw = new System.IO.StringWriter();
         System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
         Response.Clear();
         Response.Charset         = "gb2312";
         Response.ContentType     = "application/vnd.ms-excel";
         Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
         Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName));
         Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
         Response.Write(@"<table style='BORDER-COLLAPSE: collapse;' borderColor=#e5e5e5 height=40 cellPadding=1 width=250 align=center border=1>
             <thead>
                 <tr>                                             
                     <td style='BACKGROUND:#e5e5e5;'>资产号</td>
                     <td style='BACKGROUND:#e5e5e5;'>资产名称</td>" +
                        (type == "2" ? "<td style='BACKGROUND:#e5e5e5;'>负责人</td>" : "") +
                        (type == "0" ? "<td style='BACKGROUND:#e5e5e5;'>状态</td>" : "") +
                        @"<td style='BACKGROUND:#e5e5e5;'>计量单位</td>
                     <td style='BACKGROUND:#e5e5e5;'>存放地点</td>  
                     <td style='BACKGROUND:#e5e5e5;'>设备来源</td>
                     <td style='BACKGROUND:#e5e5e5;'>是否拟盘亏</td>                                                      
              </tr>
             </thead><tbody>");
         if (dt.Rows.Count > 0)
         {
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 DataRow row = dt.Rows[i];
                 Response.Write(@"<tr><td >" + row["AssetNumber"].ToString() + @"</td>                                       
                                 <td>" + row["AssetName"].ToString() + "</td>" +
                                (type == "2" ? "<td>" + row["CreateName"].ToString() + "</td>" : "") +
                                (type == "0" ? "<td>" + GetEquipStatusName(row["Status"].ToString()) + "</td>" : "") +
                                "<td>" + row["Unit"].ToString() + @"</td>
                                 <td>" + row["Storage"].ToString() + @"</td>
                                 <td>" + GetEquipSource(row["EquipSource"].ToString()) + @"</td>
                                 <td>" + GetIsloss(row["loss"].ToString()) + "</td></tr>");
             }
         }
         Response.Write(@"</tbody></table>");
         Response.Write(tw.ToString());
         Response.Write("</body></html>");
         Response.End();
         hw.Close();
         hw.Flush();
         tw.Close();
         tw.Flush();
     }
     catch (Exception ex)
     {
     }
 }
Ejemplo n.º 4
0
 protected override void Render(HtmlTextWriter writer)
 {
     StringBuilder sb = new StringBuilder();
     HtmlTextWriter tempWriter = new HtmlTextWriter(new StringWriter(sb));
     base.Render(tempWriter);
     tempWriter.Flush();
     tempWriter.Close();
     writer.Write(MyCompany.Data.Localizer.Replace("Pages", Path.GetFileName(Request.PhysicalPath), sb.ToString()));
 }
Ejemplo n.º 5
0
        protected override void Render(HtmlTextWriter writer)
        {
            if (this.CanCache)
            {
                // 将底层构建的内容都拦截到自定义的流中
                var stringWriter   = new StringWriter();
                var htmlTextWriter = new HtmlTextWriter(stringWriter);
                // 这句话很重要,页面所有的元素要呈现为HTML内容都要经过它本身的Render()函数
                // 而这个 htmlTextWriter 就贯穿于流程始末,拦截到所有元素呈现的内容
                // 否则页面呈现的内容一个字符都获取不到
                base.Render(htmlTextWriter);
                htmlTextWriter.Flush();
                htmlTextWriter.Close();
                // 这句话比上面那句 base.Render( htmlTextWriter ); 更重要。
                // 原因就是,如果你想让页面呈现内容一字不差的发送到客户端就是这句话在起作用
                // 这句话以及上面那句虽然很简单,但是如果你忽略了它们中的任意一句,它们会让你知道什么叫噩梦~!
                writer.Write(stringWriter);

                // 以下代码将由底层构建的用于呈现到客户端的内容保存到物理文件中,很简单
                var htmlText = stringWriter.ToString();
                stringWriter.Close();
                stringWriter.Dispose();

                // 保存页面最终呈现的内容到文件,并附加缓存有效期
                // 好吧,这里使用文件的共享方式来控制对文件的并发写入控制
                // 所以这里必须处理好异常,虽然不能写入但是至少我能做到让上面的代码呈现的页面内容顺利的响应到客户端
                // 葛小亮 2015-12-22
                try
                {
                    if (!Directory.Exists(this.CachedPageFileFolderPath))
                    {
                        Directory.CreateDirectory(this.CachedPageFileFolderPath);
                    }

                    using (var fs = File.Open(this.CachedPageFileFullName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
                    {
                        fs.SetLength(0); // 清空原有文件的内容
                        var streamWriter = new StreamWriter(fs, Encoding.UTF8);
                        streamWriter.WriteLine("<!-- expiry[{0}] -->",
                                               DateTime.Now.AddMinutes(this.CachedExpiryMinutes)
                                               .ToString("yyyy-MM-dd HH:mm:ss"));
                        streamWriter.Write(htmlText);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }
                }
                catch (IOException)
                {
                    // 隐藏掉由于IO操作导致的异常,例如:并发写文件因为不共享写入导致的错误。
                }
            }
            else
            {
                base.Render(writer);
            }
        }
Ejemplo n.º 6
0
 public string Render(string newLine)
 {
     StringWriter sw = new StringWriter();
     HtmlTextWriter writer = new HtmlTextWriter(sw, "");
     writer.NewLine = newLine;
     base.Render(writer);
     writer.Flush();
     writer.Close();
     string result = sw.GetStringBuilder().ToString();
     return result;
 }
        /// <summary>
        /// Creates a simplistic Property Grid to display of an object
        /// </summary>
        /// <returns></returns>
        public static string ShowPropertyGrid(object sourceObject)
        {
            if (sourceObject == null)
                return "<hr/>No object passed.<hr/>";

            StringBuilder sb = new StringBuilder();
            using (StringWriter sw = new StringWriter(sb))
            {
                using (HtmlTextWriter hWriter = new HtmlTextWriter(sw))
                {
                    hWriter.WriteBeginTag("table");
                    hWriter.WriteAttribute("border", "1");
                    hWriter.WriteAttribute("cellpadding", "5");
                    hWriter.WriteAttribute("class", "table table-bordered table-striped");
                    hWriter.Write(" style='border-collapse:collapse;'");
                    hWriter.Write(HtmlTextWriter.TagRightChar);
                    MemberInfo[] miT = sourceObject.GetType().FindMembers(MemberTypes.Field | MemberTypes.Property, BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly, null, null);
                    foreach (MemberInfo Field in miT)
                    {
                        string Name = Field.Name;
                        object Value = null;
                        if (Field.MemberType == MemberTypes.Field)
                        {
                            Value = ((FieldInfo)Field).GetValue(sourceObject);
                            continue;
                        }
                        else
                            if (Field.MemberType == MemberTypes.Property)
                                Value = ((PropertyInfo)Field).GetValue(sourceObject, null);
                        hWriter.WriteFullBeginTag("tr");
                        hWriter.WriteFullBeginTag("td");
                        hWriter.Write(Name);
                        hWriter.WriteEndTag("td");
                        hWriter.WriteLine();
                        hWriter.WriteFullBeginTag("td");
                        hWriter.WriteBeginTag("input");
                        hWriter.WriteAttribute("name", "Configuration." + Name);
                        hWriter.WriteAttribute("value", ReflectionUtils.TypedValueToString(Value));
                        hWriter.Write(" style='Width:400px' ");
                        hWriter.Write(HtmlTextWriter.TagRightChar);
                        hWriter.WriteEndTag("td");
                        hWriter.WriteLine();
                        hWriter.WriteEndTag("tr");
                        hWriter.WriteLine();
                    }
                    hWriter.WriteEndTag("table");
                    //string TableResult = sb.ToString();
                    hWriter.Close();
                }
                sw.Close();
            }

            return sb.ToString();
        }
        /// <summary>
        /// Override the base Render method.
        /// </summary>
        protected override void Render(HtmlTextWriter writer)
        {
            var htmlTableRemover = HtmlRemover ?? new HtmlRemover();

            var sw = new StringWriter();
            var hw = new HtmlTextWriter(sw);
            base.Render(hw);

            var html = htmlTableRemover.RemoveHtmlTableElements(sw.ToString());

            hw.Close();
            sw.Close();

            writer.Write(html);
        }
Ejemplo n.º 9
0
        public static void ToExcelE(System.Web.UI.WebControls.DataGrid DataGrid2Excel, string FileName)
        {
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls"); //filename=Report.xls
            HttpContext.Current.Response.Charset         = "GB2312";                                                       //UTF-8
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            HttpContext.Current.Response.ContentType     = "application/vnd.ms-excel";

            System.IO.StringWriter       tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

            DataGrid2Excel.RenderControl(hw);             //Get the HTML for the control.
            hw.Flush();
            hw.Close();
            HttpContext.Current.Response.Write(tw.ToString());             //Write the HTML back to the browser.
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 10
0
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            System.IO.StringWriter       stringWriter   = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlTextWriter = new System.Web.UI.HtmlTextWriter(stringWriter);
            base.Render(htmlTextWriter);
            htmlTextWriter.Flush();
            htmlTextWriter.Close();
            string text = stringWriter.ToString();

            text = text.Trim();
            string webUrlStart = Globals.GetWebUrlStart();

            text = text.Replace("<img src=\"" + webUrlStart + "/Storage/master/product/", "<img class='imgLazyLoading' src=\"/Utility/pics/lazy-ico.gif\" data-original=\"" + webUrlStart + "/Storage/master/product/");
            text = text.Replace("<img src=\"/Storage/master/product/", "<img class='imgLazyLoading' src=\"/Utility/pics/lazy-ico.gif\" data-original=\"/Storage/master/product/");
            writer.Write(text);
        }
Ejemplo n.º 11
0
        public override string GetDesignTimeHtml()
        {
            StringWriter sw = new StringWriter();
            HtmlTextWriter writer = new HtmlTextWriter(sw);
            writer.Write("<i>ProgressBar - no-Javascript fallback = {</i><a href='#'>");
            ProgressBarBase control = (ProgressBarBase)Component;
            if (!control.HasControls())
                writer.Write("Check Upload Progress");
            else
            {
                control.RenderChildControls(writer);
            }

            writer.Write("</a><i>}</i>");
            writer.Close();
            return sw.ToString();
        }
Ejemplo n.º 12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //DataTable dt = (DataTable)Session["dsBCPLotWO"];
        DataTable dt = (DataTable)Cache[Session.SessionID + "CTM"];

        this.GridView1.DataSource = dt;
        this.GridView1.DataBind();

        System.Web.HttpContext.Current.Response.Clear();
        System.Web.HttpContext.Current.Response.Buffer = true;
        System.Web.HttpContext.Current.Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
        System.Web.HttpContext.Current.Response.Write("<head>");
        System.Web.HttpContext.Current.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=gb2312>");//解决中文乱码问题,导出数据在20行内容易出现乱码
        System.Web.HttpContext.Current.Response.Write("<!--[if gte mso 9]><xml>");
        System.Web.HttpContext.Current.Response.Write("<x:ExcelWorkbook>");
        System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheets>");
        System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheet>");
        System.Web.HttpContext.Current.Response.Write("<x:Name>sheet1</x:Name>");
        System.Web.HttpContext.Current.Response.Write("<x:WorksheetOptions>");
        System.Web.HttpContext.Current.Response.Write("<x:Print>");
        System.Web.HttpContext.Current.Response.Write("<x:ValidPrinterInfo/>");
        System.Web.HttpContext.Current.Response.Write("</x:Print>");
        System.Web.HttpContext.Current.Response.Write("</x:WorksheetOptions>");
        System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheet>");
        System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheets>");
        System.Web.HttpContext.Current.Response.Write("</x:ExcelWorkbook>");
        System.Web.HttpContext.Current.Response.Write("</xml>");
        System.Web.HttpContext.Current.Response.Write("<![endif]--> ");
        System.Web.HttpContext.Current.Response.Write("</head>");
        System.Web.HttpContext.Current.Response.Write("<body><table><tr><td colspan=46 style='height:20.00pt;font-size:12pt;font-weight:bold;'align='center'>" + "ModelCtmRpt" + "</td></tr></table>");

        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=ModelCtmRpt.xls");
        HttpContext.Current.Response.Charset         = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
        HttpContext.Current.Response.ContentType     = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
        this.GridView1.Page.EnableViewState          = false;
        System.IO.StringWriter       tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        this.GridView1.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
        tw.Close();
        hw.Close();
        GC.Collect();
    }
Ejemplo n.º 13
0
        ///<summary>Renders the designer html for an ASP.NET Control</summary>
        public static string RenderDesignerControl(Control control)
        {
            string height    = "auto";
            string width     = "auto";
            string canResize = "true";
            string canDrop   = "false";
            string id        = control.UniqueID;

            WebControl wc = control as WebControl;

            if (wc != null)
            {
                height = wc.Height.ToString();
                width  = wc.Width.ToString();
            }
            else
            {
                canResize = "false";
            }

            //TODO: is there a better way to make tiny controls appear a decent size?
            if (height == "" || height == "auto")
            {
                height = "20px";
            }
            if (width == "" || width == "auto")
            {
                width = "20px";
            }

            //render the control
            //TODO: use designer, when they're written

            OnPreRenderMethodInfo.Invoke(control, new object[] { EventArgs.Empty });
            System.IO.StringWriter       strWriter = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter writer    = new System.Web.UI.HtmlTextWriter(strWriter);
            control.RenderControl(writer);
            writer.Close();
            strWriter.Flush();
            string content = strWriter.ToString();

            strWriter.Close();

            return(string.Format(ControlSubstituteStructure, id, width, height, canDrop, canResize, content));
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Returns the HTML to display in the VS IDE
        /// </summary>
        /// <returns>HTML string</returns>
        public override string GetDesignTimeHtml()
        {
            //System.Diagnostics.Debugger.Break();

            int numOfItems = _contextMenuInstance.ContextMenuItems.Count;

            if (numOfItems == 0)
            {
                _contextMenuInstance.ContextMenuItems.Clear();

                for(int i = 0; i < 5; i++)
                {
                    ContextMenuItem item = new ContextMenuItem("Item", "");
                    _contextMenuInstance.ContextMenuItems.Add(item);
                }
            }

            // Add the selected item
            int selectedItemPos = 1;
            ContextMenuItem selectedItem = new ContextMenuItem("Selected Item", "");
            _contextMenuInstance.ContextMenuItems.AddAt(selectedItemPos, selectedItem);

            // Pseudo-rendering
            StringWriter swTemp = new StringWriter();
            HtmlTextWriter writer = new HtmlTextWriter(swTemp);
            _contextMenuInstance.RenderControl(writer);
            writer.Close();
            swTemp.Close();

            // Modify the background color of the selected item
            Table menu = (Table) (_contextMenuInstance.Controls[0]).Controls[0];
            TableRow row = menu.Rows[selectedItemPos];
            row.BackColor = _contextMenuInstance.RolloverColor;

            StringWriter sw = new StringWriter();
            writer.InnerWriter = sw;
            menu.RenderControl(writer);

            if (numOfItems == 0)
                _contextMenuInstance.ContextMenuItems.Clear();
            else
                _contextMenuInstance.ContextMenuItems.RemoveAt(selectedItemPos);

            return sw.ToString();
        }
Ejemplo n.º 15
0
        public string ToHtml()
        {
            System.IO.StringWriter writer = new StringWriter();
            HtmlTextWriter htmlTextWriter = new HtmlTextWriter(writer);

            this.Render(htmlTextWriter);
            string result = htmlTextWriter.InnerWriter.ToString();

            htmlTextWriter.Close();

            string userDefineFoot = @"<tr {2}>
                                            <td colspan=""{0}"">
                                                {1}
                                            </td>
                                        </tr>";

            return string.Format(userDefineFoot, ColSpan, result, FootClass == string.Empty ? string.Empty : string.Format( @"class=""{0}""", this.FootClass));
        }
 protected void btnImport_Click(object sender, EventArgs e)
 {
     System.IO.StringWriter       tw = new System.IO.StringWriter();
     System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
     Response.Clear();
     Response.Charset         = "gb2312";
     Response.ContentType     = "application/vnd.ms-excel";
     Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
     Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("其他出库单") + ".xls");
     Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
     Response.Write(hiddExcel.Value);
     Response.Write(tw.ToString());
     Response.Write("</body></html>");
     Response.End();
     hw.Close();
     hw.Flush();
     tw.Close();
     tw.Flush();
 }
 public static string RenderMenuItems(List <MenuItem> datasource)
 {
     System.Text.StringBuilder    sb         = new System.Text.StringBuilder();
     System.IO.StringWriter       stWriter   = new System.IO.StringWriter(sb);
     System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stWriter);
     foreach (var item in datasource)
     {
         _RenderMenu(item, htmlWriter);
         if (item.ChildItems != null && item.ChildItems.Count > 0)
         {
             htmlWriter.Write("</ul>\r");
             htmlWriter.Write("</li>\r");
         }
     }
     htmlWriter.Flush();
     htmlWriter.Close();
     //System.Diagnostics.Debug.WriteLine(sb.ToString());
     return(sb.ToString());
 }
Ejemplo n.º 18
0
        public string GetCallbackResult()
        {
            string[] str = new string[] { "11", "22", "33", "44" };
            ListItem item = null;
            this.drpList1.Items.Clear();
            foreach (string tmp in str)
            {
                item = new ListItem(tmp, tmp);
                this.drpList1.Items.Add(item);
            }

            StringWriter writer1 = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
            HtmlTextWriter writer2 = new HtmlTextWriter(writer1);
            this.drpList1.RenderControl(writer2);

            writer2.Flush();
            writer2.Close();
            return writer1.ToString();
        }
Ejemplo n.º 19
0
    /// <summary>
    /// 导出EXCEL方法
    /// </summary>
    /// <param name="page"></param>
    /// <param name="fileName"></param>
    /// <param name="html"></param>
    protected void ExportDsToXls(Page page, string fileName, string html)
    {
        System.IO.StringWriter       tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        Response.Clear();
        Response.Charset         = "gb2312";
        Response.ContentType     = "application/vnd.ms-excel";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName) + ".xls");
        Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");

        Response.Write(html);

        Response.Write(tw.ToString());
        Response.Write("</body></html>");
        Response.End();
        hw.Close();
        hw.Flush();
        tw.Close();
        tw.Flush();
    }
Ejemplo n.º 20
0
        public override string GetDesignTimeHtml()
        {
            DynamicImage control = (DynamicImage) Component;
            StringWriter textWriter = new StringWriter();
            HtmlTextWriter writer = new HtmlTextWriter(textWriter);
            control.RenderControl(writer);

            CompositionImage image = control.Composition.GetCompositionImage();

            string designTimeImageUrl = Path.Combine(Path.GetTempPath(), Guid.NewGuid() + "." + image.Properties.FileExtension);

            using (FileStream fileStream = File.OpenWrite(designTimeImageUrl))
            {
                image.Properties.GetEncoder().Save(fileStream);
            }
            string html = textWriter.ToString().Replace("src=\"", "src=\"file:///").Replace("src='", "src='file:///");

            writer.Close();
            textWriter.Close();

            return html;
        }
Ejemplo n.º 21
0
    public static string RenderToMessage(System.Web.UI.UserControl ctrControl)
    {
        System.Text.StringBuilder sbuBuilder;
        System.IO.StringWriter wriWriter;
        System.Web.UI.HtmlTextWriter htwWriter;

        sbuBuilder = new System.Text.StringBuilder();

        sbuBuilder.Append("<html>");
        sbuBuilder.Append("<body>");

        wriWriter = new System.IO.StringWriter(sbuBuilder);
        htwWriter = new System.Web.UI.HtmlTextWriter(wriWriter);
        ctrControl.RenderControl(htwWriter);

        htwWriter.Close();
        wriWriter.Close();

        sbuBuilder.Append("</body>");
        sbuBuilder.Append("</html>");

        return sbuBuilder.ToString();
    }
Ejemplo n.º 22
0
    public static string RenderToMessage(System.Web.UI.UserControl ctrControl)
    {
        System.Text.StringBuilder    sbuBuilder;
        System.IO.StringWriter       wriWriter;
        System.Web.UI.HtmlTextWriter htwWriter;

        sbuBuilder = new System.Text.StringBuilder();

        sbuBuilder.Append("<html>");
        sbuBuilder.Append("<body>");

        wriWriter = new System.IO.StringWriter(sbuBuilder);
        htwWriter = new System.Web.UI.HtmlTextWriter(wriWriter);
        ctrControl.RenderControl(htwWriter);

        htwWriter.Close();
        wriWriter.Close();

        sbuBuilder.Append("</body>");
        sbuBuilder.Append("</html>");

        return(sbuBuilder.ToString());
    }
Ejemplo n.º 23
0
    protected override void Render(HtmlTextWriter writer)
    {
        var stringWriter = new System.IO.StringWriter();
        var htmlWriter   = new System.Web.UI.HtmlTextWriter(stringWriter);

        base.Render(htmlWriter);

        htmlWriter.Flush();
        htmlWriter.Close();
        string html = stringWriter.ToString().Replace("\t", "  ");

        html = Regex.Replace(html, "(\r\n){2,}", "\r\n");
        html = Regex.Replace(html, "(\r\n\\s+)+(?<Follow>\r\n\\s+</)", "${Follow}");
        html = Regex.Replace(html, "\r\n(?<Indent>\\s+)(\r\n\\s+)+", "\r\n${Indent}");
        var match = Regex.Match(html, "\r\n(?<Indent>\\s+)<span>Page Events:");

        if (match.Success)
        {
            string indent = match.Groups["Indent"].Value;
            html = Regex.Replace(html, "<br />(?<counter><span>[0-9]{12})", "<br />\r\n" + indent + "${counter}");
        }
        Response.Write(html);
    }
		protected override void Render (HtmlTextWriter writer)
		{
			if (!renderDisabled)
			{
				if (renderCacheContent == null)
				{
					// cache expired
					using (var stringWriter = new System.IO.StringWriter ())
					using (var htmlWriter = new HtmlTextWriter (stringWriter))
					{
						// render the current page content to our temp writer
						base.Render (htmlWriter);
						// htmlWriter.Flush();
						htmlWriter.Close ();

						// get the content
						renderCacheContent = stringWriter.ToString ();
					}
		
					// NOTE: For testing purposes
					// renderCacheContent = string.Concat (renderCacheContent, "<p>" + DateTime.Now.ToShortTimeString () + "</p>");

					// NOTE: Set render cache only in non-edit mode - this give editors 
					// somethat increased performance and ensures that common users see only allowed content
					
					if (!IsEditable)
					{
						var settings = new EmployeeSettings (this);
						CacheHelper.Set<string> (renderCacheContent, DataCacheKey, settings.DataCacheTime);
					}
				}

				// write the new html to the page
				writer.Write (renderCacheContent);
			}
		}
Ejemplo n.º 25
0
        public void RssToHtml(string input, string output)
        {
            // write as UTF-8
            HtmlTextWriter writer = new HtmlTextWriter(new StreamWriter(output), "    ");

            XmlTextReader reader = new XmlTextReader(input)
                                       {
                                           XmlResolver = null,
                                           WhitespaceHandling = WhitespaceHandling.None
                                       };

            reader.MoveToContent();
            if (reader.Name == "rss")
            {
                writer.RenderBeginTag(HtmlTextWriterTag.Html);
                while (reader.Read() &&
                  reader.NodeType != XmlNodeType.EndElement)
                {
                    switch (reader.LocalName)
                    {
                        case "channel":
                            ChannelToHtml(reader, writer);
                            break;
                        case "item":
                            //ItemToHtml(reader, writer);
                            break;
                        default: // ignore image and textinput.
                            break;
                    }
                }
                writer.RenderEndTag();
            }

            reader.Close();
            writer.Close();
        }
Ejemplo n.º 26
0
        private bool Save_File(string lang)
        {
            try
            {
                string ffilecontent = txtDescription.Text.Trim();
                string ffilename = txtFilepath.Text.Trim();
                string ffilepath = Server.MapPath(PRE_FOLDER + DIR_UPLOAD + lang + "/" + ffilename);
                if (!System.IO.File.Exists(ffilepath))
                {
                    System.IO.Directory.CreateDirectory(ffilepath.Replace(ffilename, ""));
                }
                System.IO.StreamWriter sw = new System.IO.StreamWriter(ffilepath, false, System.Text.UTF8Encoding.UTF8);
                HtmlTextWriter fs = new HtmlTextWriter(sw);
                fs.Write(ffilecontent);
                fs.Close();

                return true;
            }
            catch
            {
                return false;
            }
        }
Ejemplo n.º 27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            StringBuilder renderedOutput = null;
            StringWriter strWriter = null;
            HtmlTextWriter tWriter = null;

            try
            {
                renderedOutput = new StringBuilder();
                strWriter = new StringWriter( renderedOutput );
                tWriter = new HtmlTextWriter( strWriter );

                view.RenderControl( tWriter );

                tWriter.Flush();
                strWriter.Flush();

                Response.Write( renderedOutput.ToString() );
                Response.Flush();
            }
            catch( Exception ex )
            {
                SendJson( new Framework.API.ReturnObject {
                    Error = true,
                    Message = "There was an error loading the requested page.",
                    Result = new {
                        Message = ex.Message,
                        Type = ex.GetType().FullName,
                        StackTrace = ex.StackTrace
                    }
                } );
            }
            finally
            {
                if( tWriter != null )
                {
                    tWriter.Close();
                    tWriter.Dispose();
                    tWriter = null;
                }

                if( strWriter != null )
                {
                    strWriter.Close();
                    strWriter.Dispose();
                    strWriter = null;
                }
            }

            Response.End();
        }
        public override void GenerateReport()
        {
            TeamSiteFile tf = new TeamSiteFile();
            string fileName = System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteOwnersReportLocation"];
            string roleStyle;

            StreamWriter fwriter = File.CreateText( fileName );
            Console.WriteLine("Creating file "+System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteOwnersReportLocation"]);

            HtmlTextWriter txtWriter=new HtmlTextWriter(fwriter);

            HtmlTable reportHtmlTable = new HtmlTable();
            reportHtmlTable.BgColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.White);
            reportHtmlTable.Border = 1;
            reportHtmlTable.BorderColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.LightGray );
            reportHtmlTable.Style.Add("font-family", "Verdana");
            reportHtmlTable.Style.Add("font-size", "9pt");

            HtmlTableRow trMessage = new HtmlTableRow();

            HtmlTableCell tcMessage = new HtmlTableCell();
            tcMessage.ColSpan = 10;
            tcMessage.InnerText = @"Last run: " + System.DateTime.Now.ToString();
            tcMessage.Style.Add("font-style","italic");

            HtmlTableRow trHeader = new HtmlTableRow();
            trHeader.Style.Add("font-weight","bold");

            //teamsite name
            HtmlTableCell tcHeader1 = new HtmlTableCell();
            tcHeader1.InnerText = "teamsite name";
            trHeader.Cells.Add(tcHeader1);

            //teamsite url
            HtmlTableCell tcHeader2 = new HtmlTableCell();
            tcHeader2.InnerText = "teamsite url";
            trHeader.Cells.Add(tcHeader2);

            //teamsite brand
            HtmlTableCell tcHeader3 = new HtmlTableCell();
            tcHeader3.InnerText = "brand";
            trHeader.Cells.Add(tcHeader3);

            //teamsite users fullname
            HtmlTableCell tcHeader4 = new HtmlTableCell();
            tcHeader4.InnerText = "teamsite owners";
            trHeader.Cells.Add(tcHeader4);

            //lanId
            HtmlTableCell tcHeader5 = new HtmlTableCell();
            tcHeader5.InnerText = "lanId" ;
            trHeader.Cells.Add(tcHeader5);

            //email address
            HtmlTableCell tcHeader6 = new HtmlTableCell();
            tcHeader6.InnerText = "email" ;
            trHeader.Cells.Add(tcHeader6);

            //teamsite request for access email address
            HtmlTableCell tcHeader8 = new HtmlTableCell();
            tcHeader8.InnerText = "request for access email";
            trHeader.Cells.Add(tcHeader8);

            //teamsite memebership count
            HtmlTableCell tcHeader9 = new HtmlTableCell();
            tcHeader9.InnerText = "TeamSite Membership";
            trHeader.Cells.Add(tcHeader9);

            //subsites
            HtmlTableCell tcHeader10 = new HtmlTableCell();
            tcHeader10.InnerText = "Subsites";
            trHeader.Cells.Add(tcHeader10);

            reportHtmlTable.Rows.Add(trHeader);

            Console.WriteLine("Connecting to site...");
            SPSite siteCollection = new SPSite(System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteUrl"]);
            SPWebCollection sites = siteCollection.AllWebs;

            try
            {
                foreach (SPWeb site in sites)
                {
                    try
                    {
                        SPWebCollection subSites = site.Webs;
                        int subsitesCount = subSites.Count;
                        int roleCount = 0;
                        SPUserCollection users = site.Users;

                        Console.WriteLine("Site: "+site.Name);
                        foreach(SPUser user in users)
                        {
                            SPRoleCollection roles = user.Roles;

                            //we need to count the roles here we count the number of teamsite owners..
                            foreach(SPRole role in roles)
                            {
                                if (role.Name == System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.roleExclusiveInclude"].ToString())
                                {
                                    roleCount ++;
                                }
                            }

                        } //user
                        if (roleCount > Convert.ToInt16(System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteOwnersCount"]) )
                        {
                            //set the style to flag this on the cell
                            roleStyle = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.Orange);
                        }
                        else
                        {
                            roleStyle = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.White);
                        }

                        foreach(SPUser user in users)
                        {
                            SPRoleCollection roles = user.Roles;
                            Console.WriteLine("\tUser: "******"TeamSiteReports.roleExclusiveInclude"].ToString())
                                {
                                    string sRole = role.Name.ToString();

                                    SPListCollection lists =  site.Lists;
                                    HtmlTableRow trData = new HtmlTableRow();

                                    //teamsite name
                                    HtmlTableCell tcData1 = new HtmlTableCell();
                                    tcData1.InnerText = site.Name;
                                    trData.Cells.Add(tcData1);

                                    //teamsite url
                                    HtmlTableCell tcData2 = new HtmlTableCell();
                                    HtmlAnchor ha1 = new HtmlAnchor();
                                    ha1.InnerText=site.Url;
                                    ha1.HRef=site.Url;
                                    tcData2.Controls.Add(ha1);
                                    trData.Cells.Add(tcData2);

                                    //teamsite brand
                                    HtmlTableCell tcData3 = new HtmlTableCell();
                                    string brand = site.Url.ToString();
                                    try
                                    {
                                        string[] ary = brand.Split('/');
                                        tcData3.InnerText = ary[3].ToString(); // e.g. http://ts/one fourth index will contain the brand
                                    }
                                    catch  //the url may not contain the brand for instance the top level site
                                    {
                                        tcData3 .InnerText = "na";
                                    }
                                    trData.Cells.Add(tcData3);

                                    //teamsite users fullname
                                    HtmlTableCell tcData4 = new HtmlTableCell();
                                    tcData4.InnerText = user.Name;
                                    tcData4.BgColor = roleStyle;
                                    trData.Cells.Add(tcData4);

                                    //teamsite user lanId
                                    HtmlTableCell tcData5 = new HtmlTableCell();
                                    tcData5.InnerText = user.LoginName;
                                    tcData5.BgColor = roleStyle;
                                    trData.Cells.Add(tcData5);

                                    //teamsite user email address
                                    HtmlTableCell tcData6 = new HtmlTableCell();
                                    HtmlAnchor haEmail = new HtmlAnchor();
                                    haEmail.InnerText="mailto:"+user.Email;
                                    haEmail.HRef=user.Email;
                                    tcData6.Controls.Add(haEmail);
                                    tcData6.InnerText = user.Email ;  //email
                                    trData.Cells.Add(tcData6);

                                    //teamsite request for access email address
                                    HtmlTableCell tcData8 = new HtmlTableCell();
                                    try
                                    {

                                        SPPermissionCollection permsSite = site.Permissions;

                                        if (permsSite.RequestAccess)
                                        {
                                            tcData8.InnerText = permsSite.RequestAccessEmail.ToString();
                                        }
                                        else
                                        {
                                            tcData8.InnerText = "";
                                        }
                                    }
                                    catch //
                                    {
                                        tcData8.BgColor = "#FF0000";
                                        tcData8.InnerText = "permissions error";
                                    }

                                    trData.Cells.Add(tcData8);

                                    //teamsite memebrship count
                                    HtmlTableCell tcData9 = new HtmlTableCell();
                                    tcData9.InnerText = site.Users.Count.ToString();
                                    trData.Cells.Add(tcData9);

                                    //subsites

                                    HtmlTableCell tcData10 = new HtmlTableCell();
                                    tcData10.InnerText = subsitesCount.ToString();
                                    if (subsitesCount>0)
                                        tcData10.BgColor = System.Drawing.ColorTranslator.ToHtml (System.Drawing.Color.Red);
                                    trData.Cells.Add(tcData10);

                                    reportHtmlTable.Rows.Add(trData);

                                }
                            }
                            site.Dispose();
                        }
                    }
                    catch(Exception ex)
                    {
                        FileErrorLogger _logger = new FileErrorLogger();
                        _logger.LogError(ex.Message, ErrorLogSeverity.SeverityError,
                            ErrorType.TypeApplication, "Centrica.Intranet.TeamSiteReports.UploadFile()");
                        _logger = null;					}
                    finally
                    {
                        site.Dispose();
                    }

                }
            }
            catch (Exception ex)
            {
                FileErrorLogger _logger = new FileErrorLogger();
                _logger.LogError(ex.Message, ErrorLogSeverity.SeverityError,
                    ErrorType.TypeApplication, "Centrica.Intranet.TeamSiteReports.UploadFile()");
                _logger = null;
            }
            finally
            {
                siteCollection.Dispose();
            }

            reportHtmlTable.RenderControl(txtWriter);

            txtWriter.Close();
            tf.UploadFile(System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteOwnersReportLocation"],
                System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteOwnersReportDestination"]);
            Console.WriteLine("Completed");
        }
Ejemplo n.º 29
0
        protected override void Render(HtmlTextWriter output)
        {
            string sHtml = "";
            switch (this.Styles)
            {
                case ButtonStyle.HtmlButton:
                    sHtml = "<input type=\"button\" class=\"ButtonBlur\" onmouseover=\"this.className='ButtonFocus'\" onmouseout=\"this.className='ButtonBlur'\" name=\"" + this.ClientID + "\" value=\"" + this.Text + "\" id=\"" + this.ClientID + "\" />";
                    sHtml = this.ModifyJavaScriptOnClick(sHtml);
                    break;

                case ButtonStyle.WebButton:
                    {
                        StringWriter writer2 = new StringWriter();
                        HtmlTextWriter writer = new HtmlTextWriter(writer2);
                        base.Render(writer);
                        sHtml = writer2.ToString();
                        writer.Close();
                        writer2.Close();
                        sHtml = this.ModifyJavaScriptOnClick(sHtml);
                        break;
                    }
                case ButtonStyle.LinkString:
                    if (!base.CausesValidation)
                    {
                        sHtml = "<span class=\"linkstring\" onclick=\"" + this.GenerateJavascript() + "\">" + this.ClientID + "</span>";
                        break;
                    }
                    sHtml = "<span class=\"linkstring\" onclick=\"if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); if (Page_IsValid) {" + this.GenerateJavascript() + "} return Page_IsValid;\">" + this.ClientID + "</span>";
                    break;

                case ButtonStyle.CanelButton:
                    sHtml = "<input type=\"button\" class=\"ButtonBlur\" onmouseover=\"this.className='ButtonFocus'\" onmouseout=\"this.className='ButtonBlur'\" onclick=\"window.location='" + this.Format.Content + "';\" name=\"" + this.ClientID + "\" value=\"" + this.Text + "\" id=\"" + this.ClientID + "\" />";
                    break;

                case ButtonStyle.JsButton:
                    sHtml = "<input type=\"button\" class=\"ButtonBlur\" onmouseover=\"this.className='ButtonFocus'\" onmouseout=\"this.className='ButtonBlur'\" onclick=\"" + this.Format.Content + "\" name=\"" + this.ClientID + "\" value=\"" + this.Text + "\" id=\"" + this.ClientID + "\" />";
                    break;
            }
            output.Write(string.Format("<span id='WsButtonDiv_{0}'>", this.ClientID));
            output.Write(sHtml + this.ReadStr);
            output.Write("</span>");
        }
Ejemplo n.º 30
0
 protected override void Render(HtmlTextWriter writer)
 {
     EnsureChildControls();
     string tagName = TagName;
     if (!IsDesignTime && Page.Request.Params["useXml"] == "true")
     {
         tagName = "neatUploadDetails"; // Ignored by browser.  Children are displayed.
     }
     if (writer is Html32TextWriter && UseHtml4)
     {
         // Since we are given an Html32TextWriter, ASP.NET must think the browser is downlevel.  The
         // Html32TextWriter would cause divs to be rendered as tables, and other sometimes undesirable
         // behavior.  ASP.NET 1.1 incorrectly thinks that anything other than IE is downlevel, which is wrong.
         // For situations where using Html32TextWriter would be problematic, we allow the page author to
         // set the UseHtml4 property to true.  That triggers this code block which is a workaround that
         // uses a normal HtmlTextWriter to write the control and its content to a string and then writes the
         // string to the original Html32TextWriter.
         StringWriter sw = new StringWriter();
         HtmlTextWriter htw = new HtmlTextWriter(sw);
         base.AddAttributesToRender(htw);
         htw.RenderBeginTag(tagName);
         base.RenderChildren(htw);
         htw.RenderEndTag();
         htw.Close();
         writer.Write(sw.ToString());
     }
     else
     {
         base.AddAttributesToRender(writer);
         writer.RenderBeginTag(tagName);
         base.RenderChildren(writer);
         writer.RenderEndTag();
     }
 }
Ejemplo n.º 31
0
        /// <summary>
        /// Build a HTML report of the results containing the calculated statistics and the data chart
        /// </summary>
        /// <param name="filename"><c>string</c> representing the full path to the Wireshark capture file</param>
        /// <returns><c>string</c> representing the report filename</returns>
        /// <remarks>Right now, the image is exported as the same size it appears in the main screen.</remarks>
        public string BuildReport(string filename)
        {
            // Export the image to the same directory as the capture file
            FileInfo capture_file = new FileInfo(filename);
            string dir = capture_file.DirectoryName;
            string name = capture_file.Name;
            string ext = capture_file.Extension;
            string basename = name.Remove(name.LastIndexOf(ext));
            string chart_filename = dir + "\\" + basename + ".png";
            _chart_main.SaveImage(chart_filename, ChartImageFormat.Png);

            // ----------------------------------------------------------------
            // Header for Report File
            // ----------------------------------------------------------------
            string html_filename = dir + "\\" + basename + ".html";
            StreamWriter writer = new StreamWriter(html_filename, false);
            HtmlTextWriter html_writer = new HtmlTextWriter(writer);
            html_writer.RenderBeginTag(HtmlTextWriterTag.Html);         // <html>
            html_writer.RenderBeginTag(HtmlTextWriterTag.Head);         // <head>
            html_writer.RenderBeginTag(HtmlTextWriterTag.Title);        // <title>
            html_writer.Write("IENetP Report - " + filename);
            html_writer.RenderEndTag();                                 // </title>

            // Stylesheet
            html_writer.RenderBeginTag(HtmlTextWriterTag.Style);        // <style>
            html_writer.Write("body { ");
            html_writer.WriteStyleAttribute("font-family", "Arial, Helvetica, sans-serif");
            html_writer.WriteLine(" }");
            html_writer.Write("h1 { ");
            html_writer.WriteStyleAttribute("font-weight", "bold");
            html_writer.WriteStyleAttribute("text-transform", "uppercase");
            html_writer.WriteStyleAttribute("text-align", "center");
            html_writer.WriteStyleAttribute("padding", "18px");
            html_writer.WriteStyleAttribute("border", "thick solid #FFFF99");
            html_writer.WriteStyleAttribute("background-color", "#004000");
            html_writer.WriteStyleAttribute("color", "#CCFFFF");
            html_writer.WriteLine(" }");
            html_writer.Write("h2 { ");
            html_writer.WriteStyleAttribute("font-weight", "bold");
            html_writer.WriteStyleAttribute("background-color", "#FFFF99");
            html_writer.WriteLine(" }");
            html_writer.Write("h3 { ");
            html_writer.WriteStyleAttribute("text-decoration", "underline");
            html_writer.WriteLine(" }");
            html_writer.Write("table.info { ");
            html_writer.WriteLine(" }");
            html_writer.Write("th.info { ");
            html_writer.WriteStyleAttribute("background-color", "#004000");
            html_writer.WriteStyleAttribute("color", "#EEFFEE");
            html_writer.WriteStyleAttribute("padding", "2px");
            html_writer.WriteStyleAttribute("width", "100px");
            html_writer.WriteLine(" }");
            html_writer.Write("td.info_description { ");
            html_writer.WriteStyleAttribute("background-color", "#E0F0E0");
            html_writer.WriteStyleAttribute("padding", "1px");
            html_writer.WriteLine(" }");
            html_writer.Write("td.info_value { ");
            html_writer.WriteStyleAttribute("background-color", "#E8F8E8");
            html_writer.WriteStyleAttribute("padding", "1px");
            html_writer.WriteLine(" }");
            html_writer.Write("table.results { ");
            html_writer.WriteLine(" }");
            html_writer.Write("th.results { ");
            html_writer.WriteStyleAttribute("background-color", "#000040");
            html_writer.WriteStyleAttribute("color", "#EEEEFF");
            html_writer.WriteStyleAttribute("padding", "2px");
            html_writer.WriteStyleAttribute("width", "100px");
            html_writer.WriteLine(" }");
            html_writer.Write("td.results_description { ");
            html_writer.WriteStyleAttribute("background-color", "#E8E8F8");
            html_writer.WriteStyleAttribute("padding", "1px");
            html_writer.WriteLine(" }");
            html_writer.Write("td.results_value { ");
            html_writer.WriteStyleAttribute("background-color", "#EEEEFF");
            html_writer.WriteStyleAttribute("padding", "1px");
            html_writer.WriteStyleAttribute("text-align", "center");
            html_writer.WriteLine(" }");
            html_writer.Write("p.log { ");
            html_writer.WriteStyleAttribute("font-family", "Courier New, monospace");
            html_writer.WriteLine(" }");
            html_writer.RenderEndTag();                                 // </style>

            html_writer.RenderEndTag();                                 // </head>
            html_writer.RenderBeginTag(HtmlTextWriterTag.Body);         // <body>

            html_writer.RenderBeginTag(HtmlTextWriterTag.H1);           // <h1>
            html_writer.Write("IENetP Test Tool Report");
            html_writer.RenderEndTag();                                 // </h1>
            html_writer.RenderBeginTag(HtmlTextWriterTag.P);            // <p>
            html_writer.Write("This report was automatically generated by the IENetP Test Tool.  For more information about the software, please visit the ");
            html_writer.AddAttribute(HtmlTextWriterAttribute.Href, "http://ienetp.sourceforge.net");
            html_writer.AddAttribute(HtmlTextWriterAttribute.Target, "_blank");
            html_writer.RenderBeginTag(HtmlTextWriterTag.A);
            html_writer.Write("IENetP SourceForge Page");
            html_writer.RenderEndTag();                                 // </a>
            html_writer.Write(".");
            html_writer.RenderEndTag();                                 // </p>

            // ----------------------------------------------------------------
            // Information and Settings
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H2); html_writer.Write("Information and Settings"); html_writer.RenderEndTag();

            // ----------------------------------------------------------------
            // General Information
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H3); html_writer.Write("General Information"); html_writer.RenderEndTag();

            html_writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "5");
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Table);                                                                    // <table>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Description");
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Value");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </th></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Capture File:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(name);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Report Generated:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(DateTime.Now.ToLongDateString() + " @ " + DateTime.Now.ToLongTimeString());
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderEndTag();                                                                                             // </table>

            // ----------------------------------------------------------------
            // Additional Information
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H3); html_writer.Write("Additional Information"); html_writer.RenderEndTag();

            html_writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "5");
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Table);                                                                    // <table>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Description");
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Value");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </th></tr>

            //html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            //html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Test ID:"); html_writer.RenderEndTag();
            //html_writer.RenderEndTag();                                                                                             // </td>
            //html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            //html_writer.Write(dataset.Settings.TestInfo.IdNumber);
            //html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Test Name:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.TestInfo.Name);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Test Description:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.TestInfo.Description);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Test Comment:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.TestInfo.Comment);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            //html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            //html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device ID:"); html_writer.RenderEndTag();
            //html_writer.RenderEndTag();                                                                                             // </td>
            //html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            //html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            //html_writer.Write(dataset.Settings.DeviceInfo.IdNumber);
            //html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Name:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.Name);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Manufacturer:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.Manufacturer);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Description:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.Description);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Model:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.Model);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Serial Number:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.SerialNumber);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Firmware Version:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.FirmwareVersion);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Device Comment:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "info_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.Settings.DeviceInfo.Comment);
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderEndTag();                                                                                             // </table>

            // ----------------------------------------------------------------
            // Results
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H2); html_writer.Write("Results"); html_writer.RenderEndTag();

            // ----------------------------------------------------------------
            // Jitter Statistics
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H3); html_writer.Write("Jitter Statistics"); html_writer.RenderEndTag();

            html_writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "5");
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Table);                                                                    // <table>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Statistic");
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Value");
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Th);                                                                       // <td class="...">
            html_writer.Write("Percentage");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </th></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Mean:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            string temp = _dataset.JitterStats.Mean + " ns"; html_writer.Write(temp);
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write("&nbsp;");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Minimum:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            temp = _dataset.JitterStats.Minimum + " ns"; html_writer.Write(temp);
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            temp = Math.Round((_dataset.JitterStats.Mean - _dataset.JitterStats.Minimum) / _dataset.JitterStats.Mean * 100, 3).ToString(); html_writer.Write(temp + "%");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Maximum:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            temp = _dataset.JitterStats.Maximum + " ns"; html_writer.Write(temp);
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            temp = Math.Round((_dataset.JitterStats.Maximum - _dataset.JitterStats.Mean) / _dataset.JitterStats.Mean * 100, 3).ToString(); html_writer.Write(temp + "%");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>

            html_writer.RenderBeginTag(HtmlTextWriterTag.Tr);                                                                       // <tr>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_description");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.RenderBeginTag(HtmlTextWriterTag.Strong); html_writer.Write("Standard Deviation:"); html_writer.RenderEndTag();
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            html_writer.Write(_dataset.JitterStats.StandardDeviation + " ns");
            html_writer.RenderEndTag();                                                                                             // </td>
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "results_value");
            html_writer.RenderBeginTag(HtmlTextWriterTag.Td);                                                                       // <td class="...">
            temp = Math.Round(_dataset.JitterStats.StandardDeviation / _dataset.JitterStats.Mean * 100, 6).ToString(); html_writer.Write(temp + "%");
            html_writer.RenderEndTag(); html_writer.RenderEndTag();                                                                 // </td></tr>
            html_writer.RenderEndTag();                                                                                             // </table>

            // ----------------------------------------------------------------
            // Jitter Graph
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H3); html_writer.Write("Jitter Graph"); html_writer.RenderEndTag();

            // Use relative file naming for chart filename
            FileInfo chart_file_info = new FileInfo(chart_filename);
            html_writer.AddAttribute(HtmlTextWriterAttribute.Src, chart_file_info.Name);
            html_writer.RenderBeginTag(HtmlTextWriterTag.Img);          // <img src="..."
            html_writer.RenderEndTag();                                 // />

            // ----------------------------------------------------------------
            // Process Log
            // ----------------------------------------------------------------
            html_writer.RenderBeginTag(HtmlTextWriterTag.H2); html_writer.Write("Process Log"); html_writer.RenderEndTag();
            html_writer.AddAttribute(HtmlTextWriterAttribute.Class, "log");
            html_writer.RenderBeginTag(HtmlTextWriterTag.P);            // <p style="...">
            html_writer.WriteLine("");
            for (int i = 0; i < _process_log.Count; i++)
            {
                html_writer.WriteLine(_process_log[i]); html_writer.WriteBreak();
            }
            html_writer.RenderEndTag();                                 // </p>

            html_writer.RenderEndTag();                                 // </body>
            html_writer.RenderEndTag();                                 // </html>
            html_writer.Close();

            // Show the HTML file
            //System.Diagnostics.Process.Start("file:///" + html_filename);

            return html_filename;
        }
        public override void GenerateReport()
        {
            TeamSiteFile tf = new TeamSiteFile();
            string fileName = System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteLastModifiedReportLocation"];
            string lastModified;

            StreamWriter fwriter = File.CreateText( fileName );
            Console.WriteLine("Creating file "+System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteLastModifiedReportLocation"]);

            HtmlTextWriter txtWriter=new HtmlTextWriter(fwriter);

            HtmlTable reportHtmlTable = new HtmlTable();
            reportHtmlTable.BgColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.White);
            reportHtmlTable.Border = 1;
            reportHtmlTable.BorderColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.LightGray );
            reportHtmlTable.Style.Add("font-family", "Verdana");
            reportHtmlTable.Style.Add("font-size", "9pt");

            HtmlTableRow trMessage = new HtmlTableRow();
            HtmlTableCell tcMessage = new HtmlTableCell();
            tcMessage.ColSpan = 4;
            tcMessage.InnerText = @"Last run: " + System.DateTime.Now.ToString();
            tcMessage.Style.Add("font-style","italic");
            trMessage.Cells.Add(tcMessage);
            reportHtmlTable.Rows.Add(trMessage);

            reportHtmlTable.BgColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.White);
            reportHtmlTable.Border = 1;
            reportHtmlTable.BorderColor = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.LightGray );
            reportHtmlTable.Style.Add("font-family", "Verdana");
            reportHtmlTable.Style.Add("font-size", "9pt");

            HtmlTableRow trHeader = new HtmlTableRow();
            trHeader.Style.Add("font-weight","bold");

            //teamsite name
            HtmlTableCell tcHeader1 = new HtmlTableCell();
            tcHeader1.InnerText = "teamsite name";
            trHeader.Cells.Add(tcHeader1);

            //teamsite url
            HtmlTableCell tcHeader2 = new HtmlTableCell();
            tcHeader2.InnerText = "teamsite url";
            trHeader.Cells.Add(tcHeader2);

            //teamsite brand
            HtmlTableCell tcHeader3 = new HtmlTableCell();
            tcHeader3.InnerText = "brand";
            trHeader.Cells.Add(tcHeader3);

            //teamsite lastModified
            HtmlTableCell tcHeader4 = new HtmlTableCell();
            tcHeader4.InnerText = "last modified";
            trHeader.Cells.Add(tcHeader4);
            reportHtmlTable.Rows.Add(trHeader);

            Console.WriteLine("Connecting to site...");
            SPSite siteCollection = new SPSite(System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteUrl"]);
            SPWebCollection sites = siteCollection.AllWebs;
            try
            {
                foreach (SPWeb site in sites)
                {
                    lastModified = "01/01/1900 01:01:01";

                    //go through the lists in the site for the later lastmodified date
                    foreach (SPList list in site.Lists)
                    {
                        if (System.DateTime.Parse(lastModified) < list.LastItemModifiedDate)
                            lastModified = list.LastItemModifiedDate.ToString();
                    }

                    Console.WriteLine("Site:"+site.Name+" last modified:"+lastModified);
                    HtmlTableRow trData = new HtmlTableRow();

                    //teamsite name
                    HtmlTableCell tcData1 = new HtmlTableCell();
                    tcData1.InnerText = site.Name;
                    trData.Cells.Add(tcData1);

                    //teamsite url
                    HtmlTableCell tcData2 = new HtmlTableCell();
                    HtmlAnchor ha1 = new HtmlAnchor();
                    ha1.InnerText=site.Url;
                    ha1.HRef=site.Url;
                    tcData2.Controls.Add(ha1);
                    trData.Cells.Add(tcData2);

                    //teamsite brand
                    HtmlTableCell tcData3 = new HtmlTableCell();
                    string brand = site.Url.ToString();
                    try
                    {
                        string[] ary = brand.Split('/');
                        tcData3.InnerText = ary[3].ToString(); // e.g. http:///blahblah fourth index will contain the brand
                    }
                    catch  //the url may not contain the brand for instance the top level site
                    {
                        tcData3 .InnerText = "na";
                    }
                    trData.Cells.Add(tcData3);

                    //teamsite last modified date
                    HtmlTableCell tcData4 = new HtmlTableCell();
                    tcData4.InnerText = lastModified;
                    trData.Cells.Add(tcData4);

                    reportHtmlTable.Rows.Add(trData);

                    site.Dispose();
                }
            }
            catch (Exception ex)
            {
                FileErrorLogger _logger = new FileErrorLogger();
                _logger.LogError(ex.Message, ErrorLogSeverity.SeverityError,
                    ErrorType.TypeApplication, "TeamSiteReports.UploadFile()");
                _logger = null;
            }
            finally
            {
                siteCollection.Dispose();
            }

            reportHtmlTable.RenderControl(txtWriter);

            txtWriter.Close();
            tf.UploadFile(System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteLastModifiedReportLocation"],
                System.Configuration.ConfigurationSettings.AppSettings["TeamSiteReports.TeamSiteLastModifiedReportDestination"]);
        }
Ejemplo n.º 33
0
        private string SaveXslt(string fileName, string fileContents, bool ignoreDebugging)
        {	        
			var tempFileName = IOHelper.MapPath(SystemDirectories.Xslt + "/" + System.DateTime.Now.Ticks + "_temp.xslt");
            using (var sw = File.CreateText(tempFileName))
            {
				sw.Write(fileContents);
				sw.Close();    
            }
            
            // Test the xslt
            string errorMessage = "";
            if (!ignoreDebugging)
            {
                try
                {

                    // Check if there's any documents yet
                    if (content.Instance.XmlContent.SelectNodes("/root/node").Count > 0)
                    {
                        XmlDocument macroXML = new XmlDocument();
                        macroXML.LoadXml("<macro/>");

                        XslCompiledTransform macroXSLT = new XslCompiledTransform();
                        page umbPage = new page(content.Instance.XmlContent.SelectSingleNode("//node [@parentID = -1]"));

                        XsltArgumentList xslArgs;
                        xslArgs = macro.AddMacroXsltExtensions();
                        library lib = new library(umbPage);
                        xslArgs.AddExtensionObject("urn:umbraco.library", lib);
                        HttpContext.Current.Trace.Write("umbracoMacro", "After adding extensions");

                        // Add the current node
                        xslArgs.AddParam("currentPage", "", library.GetXmlNodeById(umbPage.PageID.ToString()));
                        HttpContext.Current.Trace.Write("umbracoMacro", "Before performing transformation");

                        // Create reader and load XSL file
                        // We need to allow custom DTD's, useful for defining an ENTITY
                        XmlReaderSettings readerSettings = new XmlReaderSettings();
                        readerSettings.ProhibitDtd = false;
                        using (XmlReader xmlReader = XmlReader.Create(tempFileName, readerSettings))
                        {
                            XmlUrlResolver xslResolver = new XmlUrlResolver();
                            xslResolver.Credentials = CredentialCache.DefaultCredentials;
                            macroXSLT.Load(xmlReader, XsltSettings.TrustedXslt, xslResolver);
                            xmlReader.Close();
                            // Try to execute the transformation
                            HtmlTextWriter macroResult = new HtmlTextWriter(new StringWriter());
                            macroXSLT.Transform(macroXML, xslArgs, macroResult);
                            macroResult.Close();
                        }
                    }
                    else
                    {
                        errorMessage = "stub";
                        //base.speechBubble(speechBubbleIcon.info, ui.Text("errors", "xsltErrorHeader", base.getUser()), "Unable to validate xslt as no published content nodes exist.");
                    }

                }
                catch (Exception errorXslt)
                {
                    //base.speechBubble(speechBubbleIcon.error, ui.Text("errors", "xsltErrorHeader", base.getUser()), ui.Text("errors", "xsltErrorText", base.getUser()));

                    //errorHolder.Visible = true;
                    //closeErrorMessage.Visible = true;
                    //errorHolder.Attributes.Add("style", "height: 250px; overflow: auto; border: 1px solid CCC; padding: 5px;");

                    errorMessage = (errorXslt.InnerException ?? errorXslt).ToString();

                    // Full error message
                    errorMessage = errorMessage.Replace("\n", "<br/>\n");
                    //closeErrorMessage.Visible = true;

                    string[] errorLine;
                    // Find error
                    MatchCollection m = Regex.Matches(errorMessage, @"\d*[^,],\d[^\)]", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
                    foreach (Match mm in m)
                    {
                        errorLine = mm.Value.Split(',');

                        if (errorLine.Length > 0)
                        {
                            int theErrorLine = int.Parse(errorLine[0]);
                            int theErrorChar = int.Parse(errorLine[1]);

                            errorMessage = "Error in XSLT at line " + errorLine[0] + ", char " + errorLine[1] + "<br/>";
                            errorMessage += "<span style=\"font-family: courier; font-size: 11px;\">";

                            string[] xsltText = fileContents.Split("\n".ToCharArray());
                            for (int i = 0; i < xsltText.Length; i++)
                            {
                                if (i >= theErrorLine - 3 && i <= theErrorLine + 1)
                                    if (i + 1 == theErrorLine)
                                    {
                                        errorMessage += "<b>" + (i + 1) + ": &gt;&gt;&gt;&nbsp;&nbsp;" + Server.HtmlEncode(xsltText[i].Substring(0, theErrorChar));
                                        errorMessage += "<span style=\"text-decoration: underline; border-bottom: 1px solid red\">" + Server.HtmlEncode(xsltText[i].Substring(theErrorChar, xsltText[i].Length - theErrorChar)).Trim() + "</span>";
                                        errorMessage += " &lt;&lt;&lt;</b><br/>";
                                    }
                                    else
                                        errorMessage += (i + 1) + ": &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + Server.HtmlEncode(xsltText[i]) + "<br/>";
                            }
                            errorMessage += "</span>";

                        }
                    }
                }

            }


            if (errorMessage == "" && fileName.ToLower().EndsWith(".xslt"))
            {
                //Hardcoded security-check... only allow saving files in xslt directory... 
                var savePath = IOHelper.MapPath(SystemDirectories.Xslt + "/" + fileName);

                if (savePath.StartsWith(IOHelper.MapPath(SystemDirectories.Xslt)))
                {
					using (var sw = File.CreateText(savePath))
	                {
						sw.Write(fileContents);
						sw.Close();
	                }
                    errorMessage = "true";
                }
                else
                {
                    errorMessage = "Illegal path";
                }
            }

            File.Delete(tempFileName);


            return errorMessage;
        }
Ejemplo n.º 34
0
        public static void ToExcelF(System.Web.UI.HtmlControls.HtmlTable Table1, string FileName, string Title, string Head, string foot)
        {
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls");  //filename=Report.xls
            HttpContext.Current.Response.Charset = "UTF-8"; //UTF-8
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            //msword;image/JPEG;text/HTML;image/GIF;vnd.ms-excel

            //HttpContext.Current.Application.Page.EnableViewState = false; //Turn off the view state.

            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

            hw.WriteLine(@"<HTML>");
            hw.WriteLine(@"<BODY>");
            hw.WriteLine("<b>" + Title + "</b>");

            //string Head = @"<table border=1><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>";
            if (Head != "")
                hw.WriteLine(Head);
            Table1.RenderControl(hw);

            if (foot != "")
                hw.WriteLine(foot);
            hw.WriteLine(@"</BODY>");
            hw.WriteLine(@"</HTML>");
            hw.Flush();
            hw.Close();
            HttpContext.Current.Response.Write(tw.ToString()); //Write the HTML back to the browser.
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 35
0
        public static void ToExcelE(System.Web.UI.WebControls.DataGrid DataGrid2Excel, string FileName)
        {
            HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName + ".xls");  //filename=Report.xls
            HttpContext.Current.Response.Charset = "GB2312"; //UTF-8
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";

            System.IO.StringWriter tw = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);

            DataGrid2Excel.RenderControl(hw); //Get the HTML for the control.
            hw.Flush();
            hw.Close();
            HttpContext.Current.Response.Write(tw.ToString()); //Write the HTML back to the browser.
            HttpContext.Current.Response.End();
        }
        private string RenderControl(Control control)
        {
            var writer1 = new StringWriter(CultureInfo.InvariantCulture);
            var writer2 = new HtmlTextWriter(writer1);

            control.RenderControl(writer2);
            writer2.Flush();
            writer2.Close();

            return writer1.ToString();
        }
 protected void Button1_Click(object sender, System.EventArgs e)
 {
     System.IO.StringWriter mySW = new System.IO.StringWriter();
     System.Web.UI.HtmlTextWriter myHW = new System.Web.UI.HtmlTextWriter(mySW);
     DataGrid1.RenderControl(myHW);
     Response.AddHeader("content-disposition", "attachment; filename=temp.xls");
     Response.ContentType = "application/vnd.ms-excel";
     Response.Write(mySW.ToString());
     Response.End();
     mySW.Close();
     myHW.Close();
 }
Ejemplo n.º 38
0
        /// <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();
            }
        }
 protected void btnImport_Click(object sender, EventArgs e)
 {
     System.IO.StringWriter tw = new System.IO.StringWriter();
     System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
     Response.Clear();
     Response.Charset = "gb2312";
     Response.ContentType = "application/vnd.ms-excel";
     Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
     Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("委托代销结算单") + ".xls");
     Response.Write("<html><head><META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>");
     Response.Write(hiddExcel.Value);
     Response.Write(tw.ToString());
     Response.Write("</body></html>");
     Response.End();
     hw.Close();
     hw.Flush();
     tw.Close();
     tw.Flush();
 }
        protected override void Render(HtmlTextWriter writer)
        {
            // Obtain the HTML rendered by the instance.
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            base.Render(hw);
            string html = sw.ToString();
            // Kill the writers we don't need anymore.
            hw.Close();
            sw.Close();

			html = html.Replace("<label for=", "<label class=\"DataEntryCaption AlignLeft\" style=\"white-space:nowrap;\" for=");
            // Send the results back into the writer provided.
            writer.Write(html);
        }
        /// <summary>
        /// Render cleaned up code.
        /// </summary>
        /// <param name="writer"></param>
        protected override void Render(HtmlTextWriter writer)
        {
            //base.Render(writer);
            // extract all html
            if (Microsoft.SharePoint.SPContext.Current.Web.CurrentUser != null)
            {
                base.Render(writer);
            }
            else
            {
                System.IO.StringWriter str = new System.IO.StringWriter();
                HtmlTextWriter wrt = new HtmlTextWriter(str);

                // render html
                base.Render(wrt);
                wrt.Close();
                string html = str.ToString();

                // find all script tags
                Regex scriptRegex = new Regex("<script[^>]*");
                MatchCollection scriptMatches = scriptRegex.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches.Count - 1; i >= 0; i--)
                {
                    // identify script tags with no type attribute
                    if (scriptMatches[i].ToString().IndexOf("type") < 0)
                    {
                        // add type attribute after script opening tag
                        html = html.Insert(scriptMatches[i].Index + 7, " type=\"text/javascript\"");
                    }
                }

                // find all uppercase script tags
                Regex scriptRegex1 = new Regex("<script[^>]*");
                MatchCollection scriptMatches1 = scriptRegex1.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches1.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("<SCRIPT LANGUAGE='JavaScript' >", "<script type=\"text/javascript\">");
                }

                // find all language=javascript tags
                Regex scriptRegex2 = new Regex("<script[^>]*");
                MatchCollection scriptMatches2 = scriptRegex2.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches2.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" language=\"javascript\"", "");
                }

                // find all language=JavaScript tags
                Regex scriptRegex3 = new Regex("<script[^>]*");
                MatchCollection scriptMatches3 = scriptRegex3.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches3.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" language=\"JavaScript\"", "");
                }

                // find all defer tags
                // DEFER version 1
                Regex scriptRegex4 = new Regex("<script[^>]*");
                MatchCollection scriptMatches4 = scriptRegex4.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches4.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" defer", "");
                    html = html.Replace("=\"defer\"", "");
                }

                // find form name tag
                Regex scriptRegex5 = new Regex("<form[^>]*");
                MatchCollection scriptMatches5 = scriptRegex5.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches5.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" name=\"aspnetForm\"", "");
                }

                // find all uppercase script tags
                Regex scriptRegex7 = new Regex("</SCRIPT[^>]*");
                MatchCollection scriptMatches7 = scriptRegex7.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches7.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("SCRIPT", "script");
                }

                // find __expr-val-dir tags
                Regex scriptRegex8 = new Regex("<html[^>]*");
                MatchCollection scriptMatches8 = scriptRegex8.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches8.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" __expr-val-dir=\"ltr\"", "");
                    html = html.Replace("lang=\"en\"", "xml:lang=\"en\"");
                }

                // find tables tags
                Regex scriptRegex9 = new Regex("<table[^>]*");
                MatchCollection scriptMatches9 = scriptRegex9.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches9.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(" TOPLEVEL", "");
                    html = html.Replace("vAlign", "valign");
                    html = html.Replace("width=\"100%\"", "");
                }

                // find tables tags
                Regex scriptRegex10 = new Regex("<td[^>]*");
                MatchCollection scriptMatches10 = scriptRegex10.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches10.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("Modified By", "ModifiedBy");
                }

                // find hidden div
                Regex scriptRegex11 = new Regex("<menu[^>]*");
                MatchCollection scriptMatches11 = scriptRegex11.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches11.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("<ie:menuitem", "<li");
                    html = html.Replace("</ie:menuitem>", "</li>");
                    html = html.Replace("onmenuclick", "onclick");
                    //html = html.Replace("text","Title");
                    html = html.Replace("iconsrc=", "style='background:url(");
                    html = html.Replace("style=\"display:none\"", "");
                }

                Regex scriptRegex12 = new Regex("<menu[^>]*");
                MatchCollection scriptMatches12 = scriptRegex12.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches12.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("<menu", "<ul");
                    html = html.Replace("</menu>", "</ul>");
                    html = html.Replace("HelpIcon.gif\"", "HelpIcon.gif\");display:none;'");
                    html = html.Replace("text=\"Help\"", "");
                    html = html.Replace("type=\"option\"", "");
                }

                Regex scriptRegex13 = new Regex("<input type='hidden' id='_wpcmWpid' name='_wpcmWpid' value=''[^>]*");
                MatchCollection scriptMatches13 = scriptRegex13.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches13.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("<input type='hidden' id='_wpcmWpid' name='_wpcmWpid' value='' />", "<p><input type='hidden' id='_wpcmWpid' name='_wpcmWpid' value='' /></p>");
                }

                Regex scriptRegex14 = new Regex("<input type='hidden' id='wpcmVal' name='wpcmVal' value=''[^>]*");
                MatchCollection scriptMatches14 = scriptRegex14.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches14.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("<input type='hidden' id='wpcmVal' name='wpcmVal' value=''/>", "<p><input type='hidden' id='wpcmVal' name='wpcmVal' value='' /></p>");
                }

                Regex scriptRegex15 = new Regex("<div[^>]*");
                MatchCollection scriptMatches15 = scriptRegex15.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches15.Count - 1; i >= 0; i--)
                {
                    // the following line has been commented out because it prevents postbacks when anonymous browsing
                    //html = html.Replace("ID", "id");
                    html = html.Replace("aria-labelledby=\"ctl00_PlaceHolderMain_ctl00_label\"", "");
                    html = html.Replace("aria-labelledby=\"ctl00_PlaceHolderMainRight_ContentRight_label\"", "");
                    html = html.Replace("aria-labelledby=\"ctl00_PlaceHolderMain_label\"", "");
                }

                Regex scriptRegex16 = new Regex("<div[^>]*");
                MatchCollection scriptMatches16 = scriptRegex16.Matches(html);

                // go through matches in reverse
                for (int i = scriptMatches16.Count - 1; i >= 0; i--)
                {
                    html = html.Replace("aria-labelledby=\"ctl00_PlaceHolderMain_ctl00_label\"", "");
                }

                // find and remove the alt tag from input search box
                // for all matches... replace with class=\"ms-sbplain\"
                Regex scriptRegex17 = new Regex("class=\"ms-sbplain\" alt=\"[^\"]*\"");
                MatchCollection scriptMatches17 = scriptRegex17.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches17.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches17[i].Value, "class=\"ms-sbplain\"");
                }

                // fix the onmouseover onmouseout to include onblur and onfocus for the small search box
                // Richard Dufour - 4/24/2012
                //  Not Required... corected the link for the search buttons... this will put the magnifined glass back in
                string scriptRegex18String = "onmouseover=\"[^\"]*\" onmouseout=\"[^\"]*\" class=\"srch-gosearchimg\"";
                Regex scriptRegex18 = new Regex(scriptRegex18String);
                MatchCollection scriptMatches18 = scriptRegex18.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches18.Count - 1; i >= 0; i--)
                {
                    string scriptRegex18ReplaceString = scriptMatches18[i].Value + " " + scriptMatches18[i].Value.Replace("class=\"srch-gosearchimg\"", "").Replace("onmouseover", "onfocus").Replace("onmouseout", "onblur");

                    html = html.Replace(scriptMatches18[i].Value, scriptRegex18ReplaceString);
                }

                // convert ccedil to &#231;
                Regex scriptRegex19 = new Regex("&ccedil;");
                MatchCollection scriptMatches19 = scriptRegex19.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches19.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches19[i].Value, "&#231;");
                }

                // strip out the class="s4-wpTopTable" border="0" cellpadding="0" cellspacing="0" from the searchbox
                Regex scriptRegex20 = new Regex("class=\"s4-wpTopTable\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"");
                MatchCollection scriptMatches20 = scriptRegex20.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches20.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches20[i].Value, "class=\"s4-wpTopTable\"");
                }

                // strip out the s4-search" border="0" cellpadding="0" cellspacing="0" from the searchbox
                Regex scriptRegex21 = new Regex("s4-search\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"");
                MatchCollection scriptMatches21 = scriptRegex21.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches21.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches21[i].Value, "s4-search\"");
                }

                // convert <td valign="top"> to <td style="vertical-align: top !important;">
                Regex scriptRegex22 = new Regex("<td valign=\"top\">");
                MatchCollection scriptMatches22 = scriptRegex22.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches22.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches22[i].Value, "<td style=\"vertical-align: top !important;\">");
                }

                // strip out the other format of s4-search" cellpadding="0" cellspacing="0" border="0" from the searchbox
                Regex scriptRegex23 = new Regex("s4-search\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"");
                MatchCollection scriptMatches23 = scriptRegex23.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches23.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches23[i].Value, "s4-search\"");
                }

                // clean the span outputted by SP when adding breadcrumbs <div id="cn-bc-inner"><span><ol> and </span></div><!-- cn-bc-inner -->
                Regex scriptRegex24 = new Regex("<div id=\"gcwu-bc-in\"><span><ol>");
                MatchCollection scriptMatches24 = scriptRegex24.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches24.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches24[i].Value, "<div id=\"gcwu-bc-in\"><ol>");
                }

                // clean the span outputted by SP when adding breadcrumbs <div id="cn-bc-inner"><span><ol> and </span></div><!-- cn-bc-inner -->
                Regex scriptRegex25 = new Regex("</span></div>");
                MatchCollection scriptMatches25 = scriptRegex25.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches25.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches25[i].Value, "</div>");
                }

                // small search web part extras
                // clean out WebPartid="00000000-0000-0000-0000-000000000000" HasPers="true" id="WebPartWPQ1"  class="noindex" OnlyForMePart="true" allowDelete="false"
                Regex scriptRegex26 = new Regex("WebPartid=\"00000000-0000-0000-0000-000000000000\" HasPers=\"true\"", RegexOptions.IgnoreCase);
                MatchCollection scriptMatches26 = scriptRegex26.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches26.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches26[i].Value, "");
                }
                Regex scriptRegex27 = new Regex("OnlyForMePart=\"true\" allowDelete=\"false\"", RegexOptions.IgnoreCase);
                MatchCollection scriptMatches27 = scriptRegex27.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches27.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches27[i].Value, "");
                }

                Regex scriptRegex28 = new Regex("<div id=\"ECBItems[^>]*", RegexOptions.IgnoreCase);
                MatchCollection scriptMatches28 = scriptRegex28.Matches(html);
                // go through matches in reverse
                for (int i = scriptMatches28.Count - 1; i >= 0; i--)
                {
                    html = html.Replace(scriptMatches28[i].Value, scriptMatches28[i].Value + " style=\"display:none;\"");
                }

                // uncomment this to have the tables removed
                // </?table[^>]*>|</?tr[^>]*>|</?td[^>]*>|</?thead[^>]*>|</?th[^>]*>|</?tfoot[^>]*>|</?tbody[^>]*>
                //Regex scriptRegex28 = new Regex("</?table[^>]*>|</?tr[^>]*>|</?td[^>]*>|</?thead[^>]*>|</?th[^>]*>|</?tfoot[^>]*>|</?tbody[^>]*>");
                //MatchCollection scriptMatches28 = scriptRegex28.Matches(html);
                //// go through matches in reverse
                //for (int i = scriptMatches28.Count - 1; i >= 0; i--)
                //{
                //    html = html.Replace(scriptMatches28[i].Value, "");
                //}

                // write the 'clean' html to the page
                writer.Write(html);
            }
        }
Ejemplo n.º 42
0
		///<summary>Renders the designer html for an ASP.NET Control</summary>
		public static string RenderDesignerControl (Control control)
		{
			string height = "auto";
			string width = "auto";
			string canResize = "true";
			string canDrop = "false";
			string id = control.UniqueID;
			
			WebControl wc = control as WebControl;
			if (wc != null) {
				height = wc.Height.ToString ();
				width = wc.Width.ToString ();
			}
			else
			{
				canResize = "false";
			}
			
			//TODO: is there a better way to make tiny controls appear a decent size?
			if (height == "" || height == "auto") height = "20px";
			if (width == "" || width == "auto") width = "20px";
			
			//render the control
			//TODO: use designer, when they're written
			
			OnPreRenderMethodInfo.Invoke (control, new object[] {EventArgs.Empty});
			System.IO.StringWriter strWriter = new System.IO.StringWriter ();
			System.Web.UI.HtmlTextWriter writer = new System.Web.UI.HtmlTextWriter (strWriter);
			control.RenderControl (writer);
			writer.Close ();
			strWriter.Flush ();
			string content = strWriter.ToString ();
			strWriter.Close ();
			
			return string.Format (ControlSubstituteStructure, id, width, height, canDrop, canResize, content);
		}