ASP.NET WebControl لعرض المراجعات أو الاختلافات في المحتوى
-
21-08-2019 - |
سؤال
أرغب في عرض الاختلافات بين إصدارات نفس المحتوى.في البداية قمت بطرح WebControl الخاص بي، ولكن خوارزمية التمييز التي توصلت إليها كانت ساذجة بعض الشيء.
هل يعرف أحد أي كود .Net أو WebControl موجود على الإنترنت قد يكون مفيدًا؟التنفيذ الذي يستخدمه Stackoverflow هو الشيء الذي أبحث عنه على سبيل المثال:
تحديث:12/12/2008لقد قمت بتجميع تطبيق jsdiff في مجموعة تحكم ويب مستقلة وقمت بتحميله إلى معرض أكواد MSDN تمييز النص وبناء الجملة وتسليط الضوء على ASP.Net WebControls.
تحديث:11/12/2008جاء عبر ما يلي مكتبة جافا سكريبت التفاضلية.سيتم تجربة تغليفه في WebControl مخصص.يبدو الإخراج مشابهًا لذلك الذي يستخدمه Stackoverflow:
المحلول
أنا أستخدم 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);
في حالتي كان لدي عنصري تحكم يعرضان القيم الأصلية أيضًا، قد ترغب في تضمين السلاسل حرفيًا في الدالة diffString().تعمل وظيفة الاستبدال الإضافية () على تحويل فواصل الأسطر إلى فواصل أسطر HTML.