总体需求是这样的,用户可以在网页上浏览经过加工处理的c++源文件,加工处理是在服务器端进行的,一般会有以下几种加工方式:
1。改变字体。
2。改变某些行的字体颜色,背景色。客户端只能浏览,不能修改。
不需要突出显示C++的关键字(有更好)。现在遇到以下几个问题:
1。客户端用什么控件来显示?
2。服务器端怎么来加工源代码?请有经验的帮忙提供一些解决方案,或者源代码。
没经验的请提供一些想法。谢谢先!

解决方案 »

  1.   

    你可以把一些关键字设置成固定的颜色;或者你直接把代码转换成html文档,显示给客户看!
      

  2.   

    syntaxhighlighter
     javascript 脚本, 专门用于美化各种代码的
    http://code.google.com/p/syntaxhighlighter/
      

  3.   

    找到一个土办法,
    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;
        }