总体需求是这样的,用户可以在网页上浏览经过加工处理的c++源文件,加工处理是在服务器端进行的,一般会有以下几种加工方式:
1。改变字体。
2。改变某些行的字体颜色,背景色。客户端只能浏览,不能修改。
不需要突出显示C++的关键字(有更好)。现在遇到以下几个问题:
1。客户端用什么控件来显示?
2。服务器端怎么来加工源代码?请有经验的帮忙提供一些解决方案,或者源代码。
没经验的请提供一些想法。谢谢先!
1。改变字体。
2。改变某些行的字体颜色,背景色。客户端只能浏览,不能修改。
不需要突出显示C++的关键字(有更好)。现在遇到以下几个问题:
1。客户端用什么控件来显示?
2。服务器端怎么来加工源代码?请有经验的帮忙提供一些解决方案,或者源代码。
没经验的请提供一些想法。谢谢先!
javascript 脚本, 专门用于美化各种代码的
http://code.google.com/p/syntaxhighlighter/
1.利用html的<pre>, 它可以显示html格式的文本,而且会自动换行.
2.加载源代码后,把需要加工的行加上<span style="blablabalab">, 需要什么样式就在style里面指定,或者指定一个css类,样式在外部文件中定义。
3.把加工后的源代码放进<pre>控件中.
4.显示.部分源代码: private Control CreatePreControl(string text, string cssClass)
{
return new LiteralControl(string.Format("<pre class=\"{0}\">{1}</pre>", cssClass, text));
}
private WebControl CreateWebControl(HtmlTextWriterTag tagName)
{
WebControl control = new WebControl(tagName);
control.EnableViewState = false;
return control;
}
protected Control GetHTMLFormattedCodeFileControl(string fileName, CodeLanguage codeLanguage)
{
WebControl div = CreateWebControl(HtmlTextWriterTag.Div);
div.ID = s_DivID;
div.CssClass = "cr-div"; string fileText = GetFileAllText(fileName);
CodeFormatter codeRender = new CodeFormatter(codeLanguage, false); div.Controls.Add(CreatePreControl(codeRender.GetFormattedCode(fileText), ""));
return div;
}