محتویات سایت
        برچسب های محبوب 








 
   معرفی کنترل ها و تکنیک های موجود در ASP.NET Ajax - قسمت دوازدهم
  در این مقاله به بررسی کنترل MutuallyExclusiveCheckBoxExtender که از کنترل های موجود در AjaxControlToolkit می باشد، می پردازم.
   Ajax
   ۲۷۸۵۴
    سورس کد
   مرتضی صحراگرد
   ۱۳۸۷/۱/۱۶
نسخه قابل چاپ نسخه قابل چاپ

مقدمه :

کنترل MutuallyExclusiveCheckBoxExtender يکي از ساده ترين کنترل هاي موجود در AjaxControlToolkit مي باشد.

همانطور که مي دانيد، يکي از راه هايي که مي توان به کاربر امکان انتخاب يک گزينه از ميان چندين گزينه را داد، استفاده ازدکمه هاي راديويي (Radio Buttons) مي باشد. دکمه هاي راديويي هنگامي که صفحه براي اولين بار بارگذاري مي شود، مي توانند انتخاب نشده باشند يعني هيچ گزينه اي از ميان گزينه ها انتخاب نشده باشد.

ولي پس از اينکه يکي از گزينه ها انتخاب شود ديگر امکان عدم انتخاب آن وجود ندارد و حتما بايد يکي از گزينه ها، انتخاب شده باقي بماند. اگر بتوان اين موضوع را يکي از محدوديت هاي مربوط به دکمه هاي راديويي دانست پس کنترل MutuallyExclusiveCheckBoxExtender براي رفع اين مشکل به وجود آمده است.

کنترل MutuallyExclusiveCheckBoxExtender همان طور که از نامش پيداست، يک Extender مي باشد و خود به تنهايي داراي شکل فيزيکي نمي باشد.

عملکرد اين کنترل از  اينجا قابل مشاهده مي باشد.

شروع :

در اين مقاله قصد داريم صفحه اي ايجاد کنيم که چند عدد CheckBox در آن وجود داشته باشد و امکان انتخاب فقط يکي از آن ها در هر لحظه امکان پذير باشد.

به قطعه کد زير توجه فرماييد.


<asp:CheckBox ID="CheckBox1" runat="server" Text="CheckBox1" />
     <ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="Mutually1" runat="server"
     TargetControlID="CheckBox1" Key="MyKey" />
<
br />
<
asp:CheckBox ID="CheckBox2" runat="server" Text="CheckBox2" />
     <ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="Mutually2" runat="server"
     TargetControlID="CheckBox2" Key="MyKey" />
<
br />
<asp:CheckBox ID="CheckBox3" runat="server" Text="CheckBox3" />
     <ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="Mutually3" runat="server"
     TargetControlID="CheckBox3" Key="MyKey" />
<
br />
<asp:CheckBox ID="CheckBox4" runat="server" Text="CheckBox4" />
     <ajaxToolkit:MutuallyExclusiveCheckBoxExtender ID="Mutually4" runat="server"
     TargetControlID="CheckBox4" Key="MyKey" />

همانطور که از قطعه کد بالا مشخص مي باشد، هر کنترل MutuallyExclusiveCheckBoxExtender به يک کنترل CheckBox اعمال مي شود و به ازاي هر يک CheckBox که قصد داريم در يک گروه قرار بگيرد(يعني يکي از گزينه هاي اين گروه را بتوان انتخاب نمود)، بايد يک کنترل MutuallyExclusiveCheckBoxExtender نيز به صفحه اضافه نمود.

در مثال بالا ما چهار عدد CheckBox داريم که قصد داريم به کاربر اين امکان را بدهيم تا فقط يکي از گزينه ها را انتخاب نمايد. ضمنا کاربر پس از انتخاب يکي از گزينه ها مي تواند از اين کار منصرف شده و گزينه انتخاب شده را از حالت انتخاب خارج سازد.

کنترل MutuallyExclusiveCheckBoxExtender  داراي دو صفت مهم مي باشد که به معرفي آن ها مي پردازم.

  • TargetControlID : همانطور که از نام اين صفت مشخص مي باشد، اين صفت ID ي کنترل CheckBox ي را که قصد داريم اين کنترل به آن اعمال شود را نگهداري مي کند.
  • Key : براي اينکه بتوانيم چند عدد CheckBox را در يک گروه قرار دهيم، يعني فقط امکان انتخاب يکي از CheckBox هاي موجود در گروه را بدهيم، بايد يک نام به اين گروه نسبت دهيم. در اين صورت عملکرد MutuallyExclusiveCheckBoxExtender فقط به CheckBox هايي که داراي نام گروه مشابه هستند اعمال مي شود و به ساير CheckBox هاي موجود در صفحه اعمال نمي شود. صفت Key نام گروه را مشخص نگهداري مي کند. چهار کنترل MutuallyExclusiveCheckBoxExtender ي که در مثال بالا ما استفاده نموده ايم داراي صفت Key مي باشند که مقدار تمام آنها MyKey است. در حقيقت نام گروه MyKey مي باشد.
  • مثال انجام شده در اين مقاله از لينک بالاي صفحه قابل دريافت مي باشد.