ASP.NET WebControl для отображения редакций или различий содержимого

Я хотел бы показать различия между версиями одного и того же контента. Изначально я развернул свой собственный WebControl, однако алгоритм дифференцирования, который я придумал, был немного наивен.

Кто-нибудь знает какой-либо код .Net или WebControl в Интернете, который может быть полезен? Реализация, которую использует stackoverflow, - это именно то, что я ищу, например:

ASP.NET WebControl для отображения редакций или различий содержимого

Обновление: 12.12.2008 Я заключил реализацию jsdiff в автономную сборку веб-элементов управления и загрузил ее в галерею кода MSDN Различие текста и подсветка синтаксиса ASP.Net WebControls.

Обновление: 12.11.2008 Наткнулся на следующий библиотека различий javascript. Будем экспериментировать, оборачивая его в настраиваемый WebControl. Вывод похож на тот, который используется stackoverflow:

ASP.NET WebControl для отображения редакций или различий содержимого

Полагаю, это делается полностью на стороне клиента? Мне было бы интересно провести различную работу на сервере. Дифференциал, который может отображать ограниченный «контекст» (а не весь файл), может различать большие файлы, не передавая слишком много клиенту.

bacar 14.05.2009 14:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
320
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.

Другие вопросы по теме