我想显示相同内容版本之间的差异。最初我推出了自己的WebControl,但是我提出的差分算法有点天真。
有没有人知道可能有用的互联网上的任何.Net代码或WebControl? stackoverflow使用的实现,正是我正在寻找的东西,例如:
更新:2008年12月12日 我已将jsdiff实现包装到一个自包含的Web控件程序集中,并将其上载到MSDN代码库Text differencing and syntax highlighting ASP.Net WebControls。
更新:2008年11月12日 遇到以下javascript differencing library。将实验包装在自定义WebControl中。输出类似于stackoverflow使用的输出:
答案 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换行符。