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:

text alt

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:

text alt

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top