3

同じコンテンツのバージョン間の違いを表示したい。最初に独自の WebControl を展開しましたが、思いついた差分アルゴリズムは少し単純でした。

.Net コードまたは WebControl がインターネット上で使用できる可能性があることを知っている人はいますか? stackoverflow が使用する実装は、まさに私が探しているものです。

代替テキスト

更新: 2008 年 12 月 12 日 jsdiff の実装を自己完結型の Web コントロール アセンブリにラップし、MSDN コード ギャラリーにアップロードしまし

更新: 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 に答える