【问题标题】:ASP.NET WebControl for displaying revisions or differences of content用于显示内容的修订或差异的 ASP.NET WebControl
【发布时间】:2008-12-11 12:41:47
【问题描述】:

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

是否有人知道 Internet 上可能有用的任何 .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 使用的输出:

【问题讨论】:

  • 我猜这完全是在客户端完成的?我有兴趣在服务器上进行差异工作。可以显示有限“上下文”(而不是整个文件)的 diff 可以在不向客户端传输太多内容的情况下区分大文件。

标签: asp.net diff web-controls


【解决方案1】:

我使用你提到的js库。

在脚本标签中包含 .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 换行符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多