ASP.NET WebControl para exibir revisões ou diferenças de conteúdo
-
21-08-2019 - |
Pergunta
Eu gostaria de exibir as diferenças entre versões do mesmo conteúdo. Inicialmente eu rolei para fora minha própria WebControl, no entanto, o algoritmo de diferenciação que surgiu foi um pouco ingênuo.
Alguém sabe de qualquer código .NET ou um WebControl lá fora nas Internets que possam ser de uso? A implementação que usos stackoverflow, é apenas a coisa que eu estou procurando por exemplo:
Update: 12/12/2008 Eu envolveu a implementação jsdiff em uma auto-contido controle web montagem e carregou-a Galeria de código MSDN diferenciação Texto e destaque de sintaxe ASP.Net WebControls .
Update: 11/12/2008 Deparei com o seguinte javascript diferenciação biblioteca. Vai experimentar envolvê-lo em um WebControl personalizado. A saída é semelhante ao utilizado pelo stackoverflow:
Solução
Eu uso os js lib você menciona.
Inclua o arquivo .js dentro de uma tag script, adicione um asp chamado: Literal para a página
<asp:Literal ID="litCompare" runat="server">
</asp:Literal>
e adicionar o código-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);
No meu caso eu tinha 2 controles que exibem os valores originais, bem, você pode querer incluir as cordas literalmente na função diffString (). O adicional replace () convertidos \ r \ n quebras de linha em quebras de linha HTML.