コンテンツのリビジョンまたは相違点を表示するための ASP.NET WebControl

StackOverflow https://stackoverflow.com/questions/359214

  •  21-08-2019
  •  | 
  •  

質問

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

インターネット上にある役に立ちそうな .Net コードまたは WebControl を知っている人はいますか?stackoverflow が使用する実装は、まさに私が探しているものです。

alt text

アップデート:2008 年 12 月 12 日jsdiff 実装を自己完結型の Web コントロール アセンブリにラップし、MSDN コード ギャラリーにアップロードしました。 テキストの区別と構文の強調表示 ASP.Net WebControls.

アップデート:2008 年 11 月 12 日以下に遭遇しました JavaScriptの差分ライブラリ. 。カスタム WebControl でラップして実験します。出力は stackoverflow で使用されるものと似ています。

alt text

役に立ちましたか?

解決

あなたが言及したjs libを使用します。

.js ファイルを script タグ内に含め、名前付きの 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() は、 改行を HTML 改行に変換します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top