This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

CustomValidator الفئة

Visual Studio 2010

ينفذ المعرفة من قبل مستخدم التحقق من صحة عنصر تحكم إدخال.

مساحة الاسم:  System.Web.UI.WebControls
التجميع:  System.Web (في System.Web.dll)

public class CustomValidator : BaseValidator
<asp:CustomValidator />

استخدام CustomValidatorعنصر تحكم لتوفير وظيفة التحقق من صحة المعرفة من قبل مستخدم لإدخال عنصر تحكم. CustomValidator عنصر التحكم هو عنصر تحكم منفصلة من تحكم إدخال من صحة، والذي يسمح لك إلى عنصر التحكم الموقع يتم عرض الرسالة التحقق من صحة.

التحقق من صحة عناصر التحكم دوماً بإجراء تحقق من الصحة تشغيل الخادم. أيضا يكون تطبيق العميل كاملة يسمح لمستعرضات ممكّن البرامج النصية (مثل Microsoft Office 2010 Suite إنترنت مستكشف 4.0 أو الأحدث) إلى إجراء التحقق من صحة تشغيل العميل. التحقق من جانب العميل يعمل على تحسين عملية التحقق من الصحة عن طريق التحقق من إدخال المستخدم قبل إرسالها إلى الخادم. Th هو يسمح الأخطاء أن يتم الكشف عنها تشغيل العميل قبل النموذج هو إرسال، وبالتالي تجنب جولة للحصول تشغيل المعلومات اللازمة للتحقق من جانب الملقم.

لإنشاء دالة التحقق من صحة الجانب الخادم قم بتوفير معالج ServerValidateالحدث بتنفيذ التحقق من الصحة. السلسلة من عنصر تحكم الإدخال للتحقق من الصحة يمكن الوصول إليها باستخدام Valueخاصية ServerValidateEventArgsتمرير الكائن في معالج الأحداث معلمة. ويتم حينئذ تخزين ناتج عن التحقق من الصحة في IsValidخاصية ServerValidateEventArgsالكائن.

لإنشاء دالة التحقق من صحة العميل قم أولاً بإضافة دالة التحقق من الصحة من جانب الخادم الذي تم وصفه سابقاً. بعد ذلك، إضافة العميل التحقق من صحة كتابة برنامج نصي للدالة إلى صفحة ASP.NET (.aspx).

إذا كنت تستخدم Visual أساسى Scripting Edition (VBScript)، يجب أن تكون دالة في هذا نموذج:

 Sub ValidationFunctionName(source, arguments)

إذا كنت usفيg JScript، يجب أن تكون دالة في هذا النموذج:

 function ValidationFunctionName(source, arguments)

sourceمعلمة هو مرجع إلى عنصر <تجاوز> تقديمها CustomValidatorعنصر التحكم. يسمح لك هذا بشكل برمجي عنصر تحكم علامة <تجاوز>، مثل تعديل InnerHtmlالسمة. argumentsمعلمة هو كائن باستخدام خاصيتين: القيمة و IsValid. Th هو معلمة يسمح لك بالحصول تشغيل قيمة عنصر التحكم للتحقق من والإشارة إلى ما إذا كانت القيمة هو صالحة تشغيل أساس إجراء التحقق من صحة المخصصة الخاصة بك.

استخدام ClientValidationFunctionالخاصية لتحديد اسم البرنامج النصي للتحقق من الصحة من جانب العميل المقترنة بـ CustomValidatorعنصر تحكم. لأن دالة برنامج نصي هو تنفيذها تشغيل العميل، يجب أن تكون دالة بلغة يعتمد مستعرض الهدف، مثل VBScript أو JScript.

ملاحظةملاحظة

عندما تقوم باستخدام CustomValidatorالتحكم داخل UpdatePanelعنصر تحكم، تأكد من أن التحكم في مدقق وأنه هو المقترنة الموجودة في نفس لوحة. ل المزيد من المعلومات حول استخدام UpdatePanelالتحكم الجزئي من صفحة التحديثات، راجع نطرة عامة حول عرض صفحة جزئية.

في جانب الخادم التحقق من صحة، يتم الوصول إلى السلسلة من إدخال عنصر التحكم المراد التحقق من صحته باستخدام Valueخاصية argumentsمعلمة. إرجاع نتيجة التحقق من صحة بواسطة إعداد IsValidخاصية argumentsالمعلمة.

ملاحظة تنبيهتنبيه

عند استخدام عناصر تحكم مدقق، يجب أن تقوم دائماً بمراجعة نتائج فحص من جانب الملقم قبل تنفيذ أية معالجة. بعد a إعادة النشر but قبل your حدث وظائف are called, the الصفحة calls the مدقق عناصر التحكم و aggregates their نتائج في the Page.IsValid خاصية. (You can also يتصل the مدقق عناصر التحكم بوضوح using the Validate أسلوب.) في your own تعليمات برمجية, you should فحص that the Page.IsValid خاصية إرجاع true قبل processing إدخال. Even though برنامج نصي-ممكّن المستعرضات might prevent a إعادة النشر من occurring تشغيل the العميل if a التحقق من صحة فحص has فشل, you should دوماً also فحص Page.IsValid في تعليمات الخادم البرمجية قبل processing validated بيانات.

Multiple التحقق من صحة عناصر التحكم can be used مع an individual إدخال عنصر تحكم إلى validate different خصائص. على سبيل المثال، يمكنك تطبيق عدة عناصر تحكم التحقق من الصحة TextBoxالتحكم التي يسمح للمستخدم بإدخال كمية العناصر لإضافتها إلى عربة التسوق. يمكنك استخدام CustomValidatorالتحكم للتأكد من أن القيمة المحددة أصغر من حجم في المخزون و RequiredFieldValidatorتأكد من أن يقوم المستخدم بإدخال قيمة في عنصر تحكم TextBoxعنصر تحكم.

ملاحظةملاحظة

إذا كان عنصر تحكم الإدخال فارغاً, تسمى لا وظائف التحقق من صحة و نجاح التحقق من صحة. استخدم a RequiredFieldValidator عنصر تحكم إلى require the مستخدم إلى Enter الزر بيانات في the إدخال عنصر تحكم.

من الممكن استخدام CustomValidatorعنصر تحكم دون إعداد ControlToValidateالخاصية. تنفيذ ذلك بشكل عام عند التحقق من صحة الإدخال عدة عناصر تحكم أو التحقق من صحة الإدخال عناصر التحكم التي لا يمكن استخدامها مع عناصر تحكم التحقق من الصحة مثل CheckBoxعنصر التحكم. في هذه الحالة، Valueخاصية argumentsالمعلمة التي تم تمريرها إلى معالج الحدث الخاص ServerValidateالحدث ويحتوي على التحقق من صحة العميل دائماً على دالة سلسلة فارغة (""). However, these التحقق من صحة دالات are still called, الموقع appropriate, إلى determine validity تشغيل كلاهما the الخادم و العميل. للوصول إلى القيمة للتحقق من صحة, يجب أن تعيد إدخال عنصر التحكم المطلوب برمجياً للتحقق من صحة واسترداد القيمة ثم من الخاصية المناسبة. على سبيل المثال، للتحقق من صحة CheckBoxالتحكم على الملقم, لا تقم بتعيين ControlToValidateعلى خاصية عنصر تحكم التحقق من صحة واستخدام التعليمات البرمجية التالية للمعالج للحصول ServerValidateالحدث.

void ServerValidation (object source, ServerValidateEventArgs args)
 {
    args.IsValid = (CheckBox1.Checked == true);
 }

For المزيد معلومات تشغيل التحقق من صحة عناصر التحكم, see BaseValidator.

‏إمكانية وصول ذوي الاحتياجات الخاصة

للحصول على المعلومات حول كيفية تكوين هذا عنصر تحكم حيث أنه يقوم بإنشاء ترميز التي تتوافق مع معايير إمكانية الوصول، راجع دعم الوصول في ASP.NETو عناصر تحكم ASP.NET و إمكانية التشغيل.

TopicLocation
كيفية القيام بما يلي: التحقق من صحة القيم الموجودة في قاعدة بيانات لعناصر تحكم خادم ASP.NETdv_vwdcon
كيفية القيام بما يلي: التحقق من الصحة لنطاق من القيم لعناصر تحكم خادم ASP.NETdv_vwdcon
كيفية القيام بما يلي: التحقق من الصحة مقابل قيمة محددة لعناصر تحكم خادم ASP.NETdv_vwdcon
كيفية القيام بما يلي: التحقق من نوع بيانات ملقم ASP.NET عناصر التحكمdv_vwdcon
كيفية القيام بما يلي: تحديد تخطيط للداخل وضع الرسائل على الملقم ASP.NET عناصر التحكمdv_vwdcon
كيفية القيام بما يلي: التحقق من صحة إدخالات مطلوب ملقم ASP.NET عناصر التحكمdv_vwdcon
الإرشادات التفصيلية: التحقق من صحة إدخالات مستخدم في الصفحة نماذج ويبdv_vwdcon
كيفية القيام بما يلي: عرض رسائل التحقق من صحة المخصصة جنبا إلى الخادم لعناصر تحكم ASP.NET الملقمdv_vwdcon
كيفية القيام بما يلي: اختبار صلاحية برمجياً ل ASP.NET Server عناصر التحكمdv_vwdcon
كيفية القيام بما يلي: بالتحقق من الصحة مقابل الأنماط لتحكم خادم ASP.NETdv_vwdcon
كيفية القيام بما يلي: التحقق من صحة البرمجه لعناصر تحكم خادم ASP.NETdv_vwdcon
كيفية القيام بما يلي: رسائل الإعلام بأخطاء التحقق من صحة تنسيق لعناصر تحكم ASP.NET الخادمdv_vwdcon
كيفية القيام بما يلي: التحقق من صحة باستخدام دالة مخصصة ل ASP.NET خادم عناصر التحكمdv_vwdcon
كيفية القيام بما يلي: قم بتعطيل التحقق من صحة ملقم ASP.NET عناصر التحكمdv_vwdcon

يوضح المثال تعليمات برمجية التالي كيفية إنشاء على جانب الملقم CustomValidatorعنصر تحكم.

ملاحظة الأمانملاحظة الأمان

يحتوي هذا المثال على مربع نص يقبل إدخال المستخدم و الذي يعد تهديد أمان محتمل. بشكل افتراضي، تتحقق صفحات ويب ASP.NET من أن مُدخلات المستخدم لا تتضمن برنامج نصي أو عناصر HTML. لمزيد من المعلومات، راجع نظرة عامة حول عمليات استغلال البرنامج النصي.



<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CustomValidator ServerValidate Example</title>
<script runat="server">

      void ValidateBtn_OnClick(object sender, EventArgs e) 
      { 

         // Display whether the page passed validation.
         if (Page.IsValid) 
         {

            Message.Text = "Page is valid.";

         }

         else 
         {

            Message.Text = "Page is not valid!";

         }

      }

      void ServerValidation(object source, ServerValidateEventArgs args)
      {

         try 
         {

            // Test whether the value entered into the text box is even.
            int i = int.Parse(args.Value);
            args.IsValid = ((i%2) == 0);

         }

         catch(Exception ex)
         {

            args.IsValid = false;

         }

      }

   </script>    

</head>
<body>

   <form id="form1" runat="server">

      <h3>CustomValidator ServerValidate Example</h3>

      <asp:Label id="Message"  
           Text="Enter an even number:" 
           Font-Names="Verdana" 
           Font-Size="10pt" 
           runat="server"
           AssociatedControlID="Text1"/>

      <br />

      <asp:TextBox id="Text1" 
           runat="server" />

      &nbsp;&nbsp;

      <asp:CustomValidator id="CustomValidator1"
           ControlToValidate="Text1"
           Display="Static"
           ErrorMessage="Not an even number!"
           ForeColor="green"
           Font-Names="verdana" 
           Font-Size="10pt"
           OnServerValidate="ServerValidation"
           runat="server"/>

      <br />

      <asp:Button id="Button1"
           Text="Validate" 
           OnClick="ValidateBtn_OnClick" 
           runat="server"/>

   </form>

</body>
</html>



يوضح المثال تعليمات برمجية التالي كيفية إنشاء على العميل CustomValidatorعنصر تحكم.


<%@ Page Language="C#" AutoEventWireup="True" %>

<html>
<head>

   <script runat="server">

      void ValidateBtn_OnClick(object sender, EventArgs e) 
      { 
         // Display whether the page passed validation.
         if (Page.IsValid) 
         {
            Message.Text = "Page is valid.";
         }

         else 
         {
            Message.Text = "Page is not valid!";
         }
      }

      void ServerValidation(object source, ServerValidateEventArgs args)
      {
         try 
         {
            // Test whether the value entered into the text box is even.
            int i = int.Parse(args.Value);
            args.IsValid = ((i%2) == 0);
         }

         catch(Exception ex)
         {
            args.IsValid = false;
         }
      }

   </script>    

</head>
<body>

   <form id="Form1" runat="server">

      <h3>CustomValidator ServerValidate Example</h3>

      <asp:Label id="Message"  
           Text="Enter an even number:" 
           Font-Name="Verdana" 
           Font-Size="10pt" 
           runat="server"/>

      <p>

      <asp:TextBox id="Text1" 
           runat="server" />

      &nbsp;&nbsp;

      <asp:CustomValidator id="CustomValidator1"
           ControlToValidate="Text1"
           ClientValidationFunction="ClientValidate"
           OnServerValidate="ServerValidation"
           Display="Static"
           ErrorMessage="Not an even number!"
           ForeColor="green"
           Font-Name="verdana" 
           Font-Size="10pt"
           runat="server"/>

      <p>

      <asp:Button id="Button1"
           Text="Validate" 
           OnClick="ValidateBtn_OnClick" 
           runat="server"/>

   </form>
</body>
</html>

<script language="javascript"> 
   function ClientValidate(source, arguments)
   {
        if (arguments.Value % 2 == 0 ){
            arguments.IsValid = true;
        } else {
            arguments.IsValid = false;
        }
   }
</script>


يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0
إظهار: