Frage

Ich möchte die Unterschiede zwischen den Versionen des gleichen Inhalts angezeigt werden soll. Zunächst rollte ich meine eigene WebControl aus, aber der differenzierenden Algorithmus kam ich mit war etwas naiv.

Kennt jemand .NET-Code oder ein WebControl da draußen auf dem Internets, die von Nutzen sein könnte? Die Implementierung, die Anwendungen Stackoverflow, ist genau das, was ich suche z:

alt text

Update: 12.12.2008 Ich habe die jsdiff Implementierung in eine in sich geschlossene Web-Steueranordnung gewickelt und hochgeladen es auf der MSDN Code Gallery Text differenzier und Syntax-Hervorhebung ASP.Net WebControls .

Update: 11.12.2008 Kam über die folgenden Javascript differenzier Bibliothek . Experimentieren sie in einem benutzerdefinierten WebControl wickeln. Die Ausgabe sieht ähnlich den von Stackoverflow verwendet:

alt text

War es hilfreich?

Lösung

Ich verwende die js lib Sie erwähnen.

Fügen Sie die JS-Datei in einem Skript-Tag, fügen Sie einen Namen asp: Literal auf der Seite

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

und fügen Sie den Code-behind:

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);

In meinem Fall hatte ich zwei Kontrollen, die auch die ursprünglichen Werte angezeigt werden, könnte man die Saiten buchstäblich in der diffString () Funktion enthalten sein soll. Die zusätzliche ersetzen () konvertiert \ r \ n Zeilenumbrüche in HTML-Zeilenumbrüche.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top