ASP.NET WebControl用于显示内容的修订或差异

时间:2008-12-11 12:41:48

标签: asp.net diff web-controls

我想显示相同内容版本之间的差异。最初我推出了自己的WebControl,但是我提出的差分算法有点天真。

有没有人知道可能有用的互联网上的任何.Net代码或WebControl? stackoverflow使用的实现,正是我正在寻找的东西,例如:

alt text

更新:2008年12月12日 我已将jsdiff实现包装到一个自包含的Web控件程序集中,并将其上载到MSDN代码库Text differencing and syntax highlighting ASP.Net WebControls

更新:2008年11月12日 遇到以下javascript differencing library。将实验包装在自定义WebControl中。输出类似于stackoverflow使用的输出:

alt text

1 个答案:

答案 0 :(得分:1)

我使用你提到的js lib。

在脚本标记中包含.js文件,在页面中添加一个名为asp:Literal的文件

<asp:Literal ID="litCompare" runat="server">
</asp:Literal>

并添加到代码隐藏:

litComparison.Text = "<pre id=\"lbDiffPre\" class=\"code\"> </pre>";
ClientScript.RegisterStartupScript(GetType(), "calccompare",
    @"document.getElementById('lbDiffPre').innerHTML = 
    diffString(document.getElementById('" + edit1.ClientID + "').value, 
        document.getElementById('" + edit2.ClientID + "').value).
        replace(/\r\n/g, '<br>';", true);

在我的情况下,我有2个显示原始值的控件,您可能希望将字符串字面包含在diffString()函数中。附加的replace()将\ r \ n换行符转换为HTML换行符。