السلام عليكم ورحمه الله وبركاته
اخواني واخواتي اعضاء منتدانا الحبيب كثيرا ما نرى ادوات تطويرية توفرها شركات اجنبية تفيد المبرمج ضمن بيئة الدوت نت مثل DevExpress و telerik وغيرهما, وهي ادوات تجارية تشتغل لأيام محددوة من ثم تطالبك بالترخيص لذا فكرت ان نقوم نحن كمبرمجين عرب بتوفير ادوات تخدم المبرمج العربي وتكون مجانية وقابلة للتحسين والاضافة
وها انا اقدم لكم اول مجموعة من الادوات الخاصة بعمليات التحقق من مدخلات المستخدم Validation Controls والمجموعة تضم اربعة ادوات وهي:
1- RequiredFieldValidator
وهي اضافة تتيح لمربع النص TextBox بان يكون ادخاله الزاميا, وبمجرد سحب المكون تنضاف الخاصية ErrorMessage لمربع النص للقيام بكتابة رسالة الخطأ عند عدم ادخال اي نص في مربع النص السابق
2- RangeValidator
وهي اضافة تتيح لمربع النص TextBox بان يكون قيمته في مدى معين, وبمجرد سحب المكون تنضاف الخاصيتين MinimumValue و MaximumValue لمربع النص لإدخال القيمة الصغرى والعظمى, وكذلك الخاصية ErrorMessage للقيام بكتابة رسالة الخطأ عندما يتجاوز المدخل المدى بين القيمين السابقتين
3- RegularExpressionValidator
وهي اضافة تتيح لمربع النص TextBox بان يكون قيمته مطابقة لصيغة يتم تحديدها, وبمجرد سحب المكون تنضاف الخاصية ValidationExpression لمربع النص والتي من خلالها يتم ضبط صيغة الـ RegularExpression , وكذلك الخاصيه ErrorMessage للقيام بكتابة رسالة الخطأ عند عدم توافق صيغة الـ RegularExpression مع قيمة مربع النص السابق. ولا انسى بالذكر انه يمكنك الان من عمل مربع نص يقبل ارقام فقط او حروف فقط بدون اي سطر كود
4- CustomValidator
اذا لم تجد مبتغاك في الاضافات السابقه فهذه الاضافة باذن الله ستحققها لك, فهي اضافة تتيح لمربع النص TextBox بان يكون قيمته تحقق شرط معين, وبمجرد سحب المكون تنضاف الخاصية ValidationFunction لمربع النص والتي من خلالها يتم ضبط الدالة التي سيتم من خلالها عملية التحقق , وكذلك الخاصيه ErrorMessage للقيام بكتابة رسالة الخطأ عند عدم توافق الدالة مع قيمة مربع النص السابق.
طبعا كل الاضافات تشتغل بدون اي اكودا مسبقة عدى الاخيره, وهذا هو كود بسيط لكيفية ضبط دالة التحقق
CustomValidator1.ValidationFunction = () =>
{
if (txtNotes.Text.Length >= 10)
return true;
else
return false;
};طبعا الكود ابسط مما تتصور واكيد الي عارف الـ Lambda Expression لن يكون عليه غريب, اما الي مش عارفها فأنصحه بقرائتها ولكن عليك التركيز الان ان كل ما عليك هو تغيير الدالة التي بين القوسين {} بحيث الدالة ترجع قيمة منطقية حسب اي شرط تختاره انت. فالكود السابق مثلا يقوم بفحص عدد احرف مربع النص txtNotes فإذا كان اكبر او يساوي 10 كانت عملية التحقق ناجحة والا فاشلة. فالان اكتب اي دالة بأي عدد من الشروط ستلاحظ ان الدالة هي تهتم بالباقي
واخيرا وليس اخرا, يمكن يسأل سأل ماذا لو نقرت زر ما وكانه هناك حقل مطلوب؟!!
لحل هذه المشكلة .. يعني لو كان معنا زر يقوم بعملية ما تتوقف عليها المدخلات انصح بكتابة الشرط التالي
if (ValidateChildren()) // Do Something ...
ارفق مشروع لتوضيح فكرة ادوات التحقق, ارجو منكم تجريبها ولاتبخلوا علي بآرائكم وانتقاداتكم او اي تحسينات ترونها وان شاء الله لو اكتملت سأنشرها مع المصدر. وفي الاخير ارجو من الاعضاء المبادرة لعمل ادوات ولو بسيطة تفيد المبرمج العربي