هل تريد تجاوز ScriptControl أو BaseValidator لعنصر تحكم مدقق ASP.NET غير المتزامن؟

StackOverflow https://stackoverflow.com/questions/50330

سؤال

أخطط لتطوير عنصر تحكم خادم ASP.NET لتوفير التحقق من توفر اسم المستخدم غير المتزامن لتسجيلات المستخدمين الجدد.سيسمح عنصر التحكم للمطور بتوجيهه إلى TextBox "اسم المستخدم" وسيوفر إشارة إلى ما إذا كان اسم المستخدم متاحًا أم لا.يحب هذا المثال, ، ولكن بدون UpdatePanel عالي الكعب.

أحد قرارات التصميم التي تسبب لي الصداع هو ما إذا كنت سأرث منه أم لا التحكم في البرنامج النصي أو BaseValidator.

من خلال تنفيذها باعتبارها التحكم في البرنامج النصي, ، يمكنني أن أجعل التعامل مع الجزء الخاص بالعميل أسهل وتعريبه بسهولة باستخدام resx.

ومع ذلك، أريد التأكد من أن أداة التحقق من الصحة تعمل بشكل صحيح فيما يتعلق بـ Page.IsValid.الطريقة الوحيدة التي أعرفها للقيام بذلك هي التجاوز BaseValidator وتنفيذها EvaluateIsValid().

لذا، سؤالي هو، كيف تقترح هيكلة هذه السيطرة؟هل الوراثة من BaseValidator هي الطريقة الأفضل (الوحيدة) للحصول على جزء المدقق بشكل صحيح، أم يمكنني القيام بذلك بطريقة أخرى؟

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرًا على القيام بالأمرين معًا إذا قمت بتنفيذ IScriptControl الواجهة بينما يتم اشتقاقها أيضًا من BaseValidator:

public class YourControl : IScriptControl, BaseValidator

لتنفيذ واجهة IScriptControl يعني أن عنصر التحكم الخاص بك يجب أن يحتوي أيضًا على أساليب GetScriptReferences وGetScriptDescriptors.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top