1

我有一个非常简单的应用程序来处理产品订单。

我想做一些报告,比如每日销售报告。

所以这是我的想法:

我想构建一个有吸引力的 HTML 页面,然后将每一行 HTML 行复制/粘贴到类似的代码中

Stringbuilder sb = new StringBuilder(); 
sb.AppendLine("<html><body>"); // each HTML line here
sb.AppendLine(products.GetQuantitySold());

然后在保存到磁盘后打开保存的 HTML 文件。

这适用于简单的 SQL 报告吗?有没有更好更通用的方法?我想避免使用任何第三方产品或库。

谢谢

4

4 回答 4

5

这完全可以接受,就像添加字符串 ( s += aValue) 一样,但StringBuilder速度要快得多。

您可以考虑使用 HtmlTextWriter,请参阅:http: //msdn.microsoft.com/en-us/library/system.web.ui.htmltextwriter.aspx

最后一个建议:您可以在光盘上存储一个带有模板 HTML 的文件,在某些位置带有变量,例如:

 <html><body>[GetQuantitySold]</body></html>

然后,加载文件并替换变量:

 string template = File.ReadAllText("MyTemplate.html");
 template = template.Replace("[GetQuantitySold"], products.GetQuantitySold().ToString());

当然,为了性能,您也可以使用StringBuilder替换值。

于 2013-04-29T14:05:49.070 回答
0

简而言之,是的,没关系。但是我建议使用HtmlTextWriter/StringWriter因为它可以为您生成 html 标签并允许您以编程方式控制标签属性等...

简单的例子: -

StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter textWriter = new HtmlTextWriter(stringWriter))
{
    //Begin list
    textWriter.RenderBeginTag(HtmlTextWriterTag.Ul);

    //List items
    textWriter.RenderBeginTag(HtmlTextWriterTag.Li);

    //Links 
    textWriter.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.google.com");
    textWriter.RenderBeginTag(HtmlTextWriterTag.A);
    textWriter.Write("Google");

    textWriter.RenderEndTag();//End A tag
    textWriter.RenderEndTag();//End Li tag

    //Render list end tag
    textWriter.RenderEndTag();
}
于 2013-04-29T14:12:24.023 回答
0

这是可以接受的。

也看看 AppendFormat

你可以像下面这样使用它:

sb.AppendFormat("<li>{0} {1}</li>", person.FirstName, person.LastName);

除此之外,您还可以构建 HtmlControls,但这是另一种方式。像这样:

HtmlGenericControl htmlcontrol = new HtmlGenericControl("li");

选择你实际喜欢的

于 2013-04-29T14:10:08.867 回答
0

总是有专门创建的 HTMLTextWriter,因此您不必自己修改这些标签:

http://msdn.microsoft.com/en-GB/library/system.web.ui.htmltextwriter.aspx

于 2013-04-29T14:08:36.883 回答