آموزش asp.net (جلسه 5)

جلسه پنجم : اعتبار سنجی فرم ها

 

 فریمورک دات نت ، شامل مجموعه ای از کنترل های لازم بمنظور بررسی اعتبار و صحت  داده های ورودی است که با استفاده از آنان در  فرم های وب و ASP.NET  ، می توان  داده  ورودی توسط  کاربر در هر یک از  فیلدهای موجود بر روی یک فرم وب را بررسی و در صورت عدم رعایت شرایط لازم ، پیام خطاء مناسبی را ارائه نمود.

 

             Validation Server Controls

 

Requierd Field Validator

Range Validator

Compare Validator  

RegularExpression Validator

ValidationSummary

   

فایل های این جلسه را download کنید .

     

کنترل های سرویس دهنده اعتبار داده  ، امکان بررسی صحت داده  مرتبط با یک کنترل سرویس دهنده ورودی نظیر یک TextBox را فراهم و در صورتیکه ماحصل بررسی بعمل آمده ، مثبت نباشد ، یک پیام خطاء نمایش داده خواهد شد. هر یک از کنترل های اعتبار داده ، عملیات خاصی را در ارتباط با بررسی صحت داده ها انجام خواهند داد . مثلا" می توان با استفاده از CompareValidator ، عملیات بررسی صحت داده ها را در ارتباط با یک مقدار خاص  انجام و یا با استفاده از کنترل RangeValidator  یک  محدوده قابل قبول از مقادیر مورد نظر در ارتباط با یک فیلد ورود اطلاعات  را انجام داد. در چنین مواردی ، حتی می توان با استفادده از کنترل CustomValidator ، شرایط خاص مورد نظر خود برای بررسی صحت داده ، تعریف و ایجاد نمود. با توجه به اینکه ، پیام خطاء در کنترل اعتبار داده نمایش داده می شود، می توان مکان مورد نظر برای نمایش پیام خطاء را نیز مشخص کرد . در این راستا ، همچنین می توان با استفاده از کنترل ValidationSummery  ، خلاصه ای از نتایج تمامی کنترل های بررسی صحت داده ها را نمایش داد .

عملیات بررسی صحت داده در یک صفحه زمانی محقق خواهد شد که یک کنترل Button نظیر Button,ImageButton و یا LinkButton کلیک گردد . در این رابطه می توان با مقدار دهی False به خصلت CausesValidation ، باعث ممانعت در رابطه با بررسی صحت داده گردید . روش فوق ، در مواردی نظیر فشردن یک دکمه Cancel و یا Clear استفاده می گردد ( در چنین مواردی عملا" ما قصد بررسی صحت داده را نخواهیم داشت ) . مقدار خصلت فوق ، بصورت پیش فرض در ارتباط با یک Button  از نوع Cancel  و یا Clear مقدار False در نظر گرفته خواهد شد .

      اعتبار سنجی فرم در سمت کلاینت در مقابل اعتبار سنجی در سرور      

Validation Server Control

توضیحات

RequiredFieldValidator

از خالی بودن یک کنترل جلوگیری می کند

CompareValidator

بین مقادیر وارد شده توسط کاربر و مقادیر مجازی که توسط برنامه نویس تعیین شده مقایسه ی انجام می دهد(با استفاده از عملگرهای مقایسه ای)

RangeValidator

چک می کند که مقداری که کاربر وارد کرده است بین مقادیر مشخص شده توسط برنامه نویس باید

RegularExpressionValidator

چک می کند که مقداری که کابر وارد کرده است با یک عبارت منظم ()تطابق دارد یا خیر

CustomValidator

می توان با استفاده از این کنترل از جاوا اسکریپت برای اعتبار سنجی ورودی ها استفاده کنیم

ValidationSummary

تمام پیغام های خطای رخ داده را در یک مکان در کنار یکدیگر نمایش می دهد

       

RequiredFieldValidator .

کنترل فوق ، مقدار یک کنترل ورودی را بمنظور حصول اطمینان از درج داده در فیلد مورد نظر توسط کاربر ، بررسی می نماید . در صورتیکه مقدار مشخص شده در فیلد مورد نظر نسبت به مقدار اولیه خود تغییر نکرده باشد ،بمنزله عدم صحت و اعتبار داده بوده و نشان دهنده این موضوع است که کاربر در فیلد مربوطه داده مورد نظر را وارد ننموده است . در حقیقت در چنین شرایطی الزامی برای درج داده در ارتباط با یک کنترل ورودی بوجود آمده و کاربر نمی تواند فیلد مربوطه را بدون اعمال تغییرات ( درج داده ) رها نموده و نسبت به آن بی تفاوت باشد . مقدار پیش فرض، یک رشته خالی ( "" ) بوده  و نشاندهنده این واقعیت است که می بایست مقداری در آن درج تا در آزمون بررسی صحت داده موفقیت حاصل گردد . در این رابطه فضاء خالی اضافه شده در ابتدا و انتهای کنترل ورودی حذف و در ادامه عملیات بررسی صحت داده انجام خواهد شد . بدین ترتیب از درج فضای خالی در کنترل ورودی برای بررسی صحت داده ممانعت بعمل می آید . در برخی موارد لازم است که در مقابل مقدار پیش فرض (رشته خالی) برای یک کنترل ورودی از مقدار اولیه مورد نظر خود استفاده نمائیم ( با توجه به سیاست های طراحی بخش رابط کاربر ) . استفاده از روش فوق ، در مواردیکه دارای یک مقدار پیش فرض در ارتباط با یک کنترل ورودی بوده و قصد داریم که کاربر را ملزم به انتخاب یک مقدار دیگر نمائیم ، توصیه می گردد . مثلا" می توان از یک کنترل ListBox بهمراه یک Entry انتخاب شده بصورت پیش فرض که شامل دستورالعمل هائی برای کاربر بمنظور انتخاب یک آیتم از لیست است ، استفاده نمود . در چنین مواردی لازم است که کاربر یک آیتم دیگر موجود در لیست را از طریق کنترل انتخاب  و در این رابطه نمی بایست کاربر آیتمی را انتخاب نماید که شامل دستورالعمل است . بدین ترتیب در صورتیکه کاربر همان مقدار اولیه پیش فرض را انتخاب نماید ، کنترل RequiredFieldValidator ، پیام خطاء مورد نظر خود را نمایش خواهد داد . بمنظور مشخص نمودن مقدار اولیه یک کنترل ورودی، می توان از خصلت InitialValue استفاده کرد.

با توجه به سیاست های طراحی رابط کاربر ، می توان از چندین Validator  در ارتباط با یک کنترل ورودی مشابه و یکسان استفاده نمود. مثلا"  می توان از یک کنترل  RequiredFieldValidator ، بمنظور حصول اطمینان از درج داده در کنترل مورد نظر استفاده و در همان حال از کنترل دیگری نظیر RangeValidator نیز استفاده تا این اطمینان ایجاد گردد که ورودی درج شده در کنترل مورد نظر در محدوده قابل قبول و مجاز می باشد .

 

کنترل ValidationSummary .

کنترل فوق ، امکان ارائه اطلاعات مختصر در رابطه با تمامی کنترل های بررسی صحت داده موجود در یک صفحه وب و در یک موفقعیت ( مکان ) را فراهم می نماید. خلاصه  اطلاعات موردنظر را می توان با استفاده از روش های متفاوتی نظیر : یک پاراگراف ، یک لیست و یا یک Bulleted list . ارائه نمود. نحوه نمایش اطلاعات با استفاده از خصلت DisplayMode مشخص خواهد شد .پیام خطاء نمایش داده شده در کنترل ValidationSummary برای هر یک از کنترل های بررسی صحت داده موجود در صفحه ، توسط خصلت ErrorMessage مربوط به هر یک از کنترل ها ، مشخص می گردد . در صورتیکه خصلت ErrorMessage مربوط به کنترل بررسی صحت داده ، مقداردهی نگردد، هیچگونه پیام خطائی در ارتباط با آن کنترل خاص توسط کنترل ValidationSummary نمایش داده نخواهد شد. برای مشخص نمودن عنوان گزارش خطاء، می توان از خصلت HeaderText استفاده کرد. بمنظور کنترل نمایش اطلاعات کنترل ValidationSummary ، می توان از خصلت ShowSummary استفاده نمود . برای نمایش خلاصه اطلاعات مورد نظر در یک Message Box می توان مقدار خصلت ShowMessageBox را True در نظر گرفت .

 

کنترل RegularExpressinoValidator .

کنترل فوق ، بمنظور تطبیق داده ورودی در یک کنترل ورودی با یک الگوی تعریف شده توسط یک عبارت ، استفاده می گردد . کنترل فوق ، امکان بررسی لازم در خصوص دنباله کاراکترهای مورد انتظار نظیر آدرس های پست الکترونیکی ، شماره های تلفن و یا کد پستی  را فراهم می نماید . با استفاده از خصلت ValidationExpression ، عبارت مورد نظر بمنظور بررسی صحت داده کنترل ورودی،  تعریف و مشخص می گردد . گرامر عبارت بررسی صحت داده بر روی سرویس گیرنده و سرویس دهنده با یکدیگر متفاوت است . در سرویس گیرنده ، بمنظور مشخص نمودن عبارت مورد نظر از گرامر Jscript و بر روی سرویس دهنده از گرامر Regex استفاده می گردد . با توجه به اینکه، گرامرعبارات Jscript زیر مجموعه ای از گرامر Regex می باشد ، توصیه می گردد از گرامر Jscript برای تعریف عبارت مورد نظر خود استفاده تا شاهد نتایج یکسانی بر روی سرویس گیرنده و سرویس دهنده باشیم .

 

 کنترل CompareValidator .

کنترل فوق، مقدار ورودی در یک کنترل ورودی را با مقدار دیگر مقایسه می نماید . از خصلت ControlToValidate  برای مشخص نمودن کنترل ورودی اول و از خصلت ControlToCompare برای مشخص نمودن کنترل ورودی دوم که می بایست با یکدیگر مقایسه گردند ، استفاده می شود .درصورتیکه ماحصل مقایسه یکسان  باشد، از مقدار مشخص شده توسط خصلت ControlToCompare ، استفاده می گردد .

       

اگر مقدار صفت CausesValidation یک دکمه را false کنید در هنگام کلیک کردن آن هیچگونه چک کردنی از لحاظ اعتبار داده های ورودی رخ نخواهد داد .

 

<asp:Button ID="Button1" Runat="server" Text="Cancel" CausesValidation="False" />

                 

RequiredFieldValidator

       

 

<script runat="server">

    protected void Button1_Click(Object sender, EventArgs e)

    {

        Label1.Text = "Page is valid!";

    }

script>

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>RequiredFieldValidatortitle>head>

<body>

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

        <div>

            <asp:TextBox ID="TextBox1" runat="server">asp:TextBox>

            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="فیلد نباید خالی باشد"

                ControlToValidate="TextBox1">asp:RequiredFieldValidator>

            <br />

            <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" />

            <br />

            <br />

            <asp:Label ID="Label1" runat="server">asp:Label>        div>    form>body>html>

 

 

 

 

کاربر می بایست مقداری غیر از مقدار وارد شده در textbox وارد کند

 

Page 2.aspx

    <asp:TextBox ID="TextBox1" runat="server">My Initial Valueasp:TextBox>

             

            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please change the value of the textbox!"

                ControlToValidate="TextBox1" InitialValue="My Initial Value">

            asp:RequiredFieldValidator>

 

     

کاربر می بایست مقداری غیر از مقدار وارد شده در textbox وارد کند اما نمی تواند که textbox را خالی نگه دارد  . کنترل RequiredFieldValidator2 خالی نبودن textbox  را چک می کند

 

Page 3.aspx

  <asp:TextBox ID="TextBox1" runat="server">My Initial Valueasp:TextBox> 

            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please change value"

                ControlToValidate="TextBox1" InitialValue="My Initial Value">asp:RequiredFieldValidator>

            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Do not leave empty"

                ControlToValidate="TextBox1">

            asp:RequiredFieldValidator>

 

     

می توان از کنترل RequiredFieldValidator برای چک کردن انتخاب یک مقدار در کنترل DropDownList نیز استفاده کرد

 

Page 4.aspx

 

<asp:DropDownList ID="DropDownList1" runat="server">

                <asp:ListItem Selected="True">Select a professionasp:ListItem>                <asp:ListItem>Programmerasp:ListItem>                <asp:ListItem>Lawyerasp:ListItem>                <asp:ListItem>Doctorasp:ListItem>                <asp:ListItem>Artistasp:ListItem>            asp:DropDownList>

             

            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please make a selection"

                ControlToValidate="DropDownList1" InitialValue="Select a profession">

            asp:RequiredFieldValidator>       

CompareValidator

 

 

بررسی اعتبار داده های ورودی بر اساس نوع مقادیر وارد شده در کنترل ها

مقادیری که می توان برای صفت </

  
نویسنده : ali gooliof ; ساعت ۱٢:٢٦ ‎ق.ظ روز ۱۳۸٧/٢/۱٦
تگ ها :