2008-12-11 50 views
3

我想顯示相同內容版本之間的差異。最初我推出了自己的WebControl,但是我想出的差異算法有點幼稚。用於顯示修訂或內容差異的ASP.NET WebControl

有沒有人知道任何.Net代碼或在互聯網上可能有用的WebControl?該計算器使用的實施,就是我在尋找例如件事:

alt text

更新:2008/12/12 我包裹jsdiff實現爲一個自包含網絡控制組件並將其上傳到MSDN代碼庫Text differencing and syntax highlighting ASP.Net WebControls

更新:11/12/2008 遇到以下javascript differencing library。將實驗包裝在一個自定義的WebControl中。輸出看起來類似於由計算器使用:

alt text

+0

我想這完全是客戶端?我有興趣在服務器上做差異工作。可以顯示有限「上下文」(而不是整個文件)的diff可以區分大文件而不會將太多內容傳輸到客戶端。 – bacar 2009-05-14 10:02:05

回答

1

我用的是JS LIB你提到。

包含一個腳本標籤中的.js文件,添加一個名爲ASP:文字頁面

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