3

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

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

替代文字

更新: 2008 年 12 月 12 日我已经将 jsdiff 实现包装到一个自包含的 Web 控件程序集中,并将其上传到 MSDN 代码库文本差异和语法突出显示 ASP.Net WebControls

更新:2008年 11 月 12 日遇到以下javascript 差异库。将尝试将其包装在自定义 WebControl 中。输出看起来类似于 stackoverflow 使用的输出:

替代文字

4

1 回答 1

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 换行符。

于 2008-12-11T16:48:00.667 回答