コンテンツのリビジョンまたは相違点を表示するための ASP.NET WebControl
-
21-08-2019 - |
質問
同じコンテンツのバージョン間の違いを表示したいと考えています。最初は独自の WebControl を展開しましたが、私が思いついた差分アルゴリズムは少し単純なものでした。
インターネット上にある役に立ちそうな .Net コードまたは WebControl を知っている人はいますか?stackoverflow が使用する実装は、まさに私が探しているものです。
アップデート:2008 年 12 月 12 日jsdiff 実装を自己完結型の Web コントロール アセンブリにラップし、MSDN コード ギャラリーにアップロードしました。 テキストの区別と構文の強調表示 ASP.Net WebControls.
アップデート:2008 年 11 月 12 日以下に遭遇しました JavaScriptの差分ライブラリ. 。カスタム WebControl でラップして実験します。出力は stackoverflow で使用されるものと似ています。
解決
あなたが言及した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 改行に変換します。
所属していません StackOverflow