المؤلف: Dflying Chen ( http://dflying.cnblogs.com/ )
ملحوظة: بفضل محبة الجميع، تعلمت الكثير خلال الشهرين اللذين قضيتهما في حديقة المدونات، وكوّنت العديد من الأصدقاء، وحصلت على العديد من الفرص. أتشرف حاليًا بترجمة كتاب أطلس: أسس أطلس: تطوير أجاكس السريع باستخدام ASP.NET 2.0، والذي من المتوقع أن تنشره دار نشر المنشورات الشعبية والاتصالات خلال ثلاثة أشهر. ولذلك، كنت مشغولاً للغاية خلال هذه الفترة، ولا يمكن تحديث المدونة بشكل متكرر كما كان الحال منذ بعض الوقت، وأنا هنا أعتذر. بالطبع، نرحب بالأصدقاء لمواصلة مناقشة الأسئلة المتعلقة بالأطلس، وسأبذل قصارى جهدي للإجابة عليها.
آمل أن أسعى خلال الشهرين المقبلين إلى التميز في ترجمة أسس الأطلس، فمن المؤكد أنه سيكون هناك العديد من القضايا التي تحتاج إلى مناقشتها مع الأصدقاء، مثل المصطلحات وأسلوب الترجمة وما إلى ذلك. شكرا لكم مقدما هنا!
في المقالة السابقة (يرجى الرجوع إلى: تطوير التحكم في موسع جانب الخادم ASP.NET Atlas - كتابة السلوك من جانب العميل)، قمنا بالفعل بكتابة السلوك من جانب العميل. في هذه المقالة، دعونا ننهي الأمر ونقوم بتشغيله كعنصر تحكم من جانب الخادم.
انتقل أولاً إلى ملف ValidateUserNameProperties.cs. ترث هذه الفئة من الفئة الأساسية TargetControlPropertiesBase
يجب إضافة خمس سمات، CheckResultLabelID وServiceName وMethodName وValidMessage وInvalidMessage. من أجل التبسيط، سأقدم فقط مثالاً للسمة
[DefaultValue("")]
[IDReferenceProperty(typeof(WebControl))]
[الملكية المطلوبة ()]
السلسلة العامة CheckResultLabelID
{
يحصل
{
return GetPropertyStringValue("CheckResultLabelID");
}
تعيين
{
SetPropertyStringValue("CheckResultLabelID"، value);
}
}
يسبق تعريف CheckResultLabelID ثلاث سمات:
DefaultValue: قم بتعيين القيمة الافتراضية لهذه السمة.
IDReferenceProperty: يحدد أن هذه الخاصية يمكنها فقط تخزين معرف نوع معين من التحكم.
RequiredProperty: يحدد أن هذه الخاصية مطلوبة.
بالنسبة للعديد من الخصائص الأخرى، يمكنك الرجوع إلى الملفات المصدر المتوفرة لاحقًا.
ثم قم بإلقاء نظرة على ملف ValidateUserNameExtender.cs الأجزاء الرئيسية هي كما يلي:
[Designer(typeof(ValidateUserNameDesigner))].
[ClientScriptResource("Dflying", "ValidateUserNameBehavior", "Dflying.Atlas.ControlTookit.ValidateUserName.ValidateUserNameBehavior.js")]
[RequiredScript(typeof(ValidateUserNameExtender))]
الفئة العامة ValidateUserNameExtender: ExtenderControlBase
{
}
من بينها، يرث ValidateUserNameExtender من الفئة الأساسية ExtenderControlBase
المصمم: حدد اسم الفئة لمصمم الموسع هذا (المستخدم لتوفير دعم وقت التصميم).
ClientScriptResource: يحدد المعلومات المطلوبة لإنشاء برامج Atlas XML النصية للعميل. يجب أن يكون Dflying وValidateUserNameBehavior هنا متوافقين مع تلك المحددة في ValidateUserNameBehavior.js السابقة.
RequiredScript: حدد البرنامج النصي المطلوب من قبل العميل، بحيث يقوم Atlas بربط ValidateUserNameBehavior.js بالصفحة في شكل ملف axd.
وأخيرًا، يوجد ملف ValidateUserNameDesigner.cs، حيث يمكنك إضافة دعم وقت التصميم. دع عنصر التحكم الخاص بك يحتوي على أنماط عرض مختلفة مع قيم خصائص مختلفة تم تعيينها في Visual Studio. للتبسيط هنا، لن أضيف دعم وقت التصميم.
في هذه المرحلة، تمت كتابة الموسع الخاص بنا، ويمكن استخدام ملف DLL الذي تم إنشاؤه بعد إنشاء الإصدار مباشرة. وفي المقالة التالية، سأوضح استخدام هذا الموسع في برنامج حقيقي.