در اين مقاله به معرفي کنترل ConfirmButtonExtender که يکي از مجموعه کنترل هاي موجود در ASP.NET AjaxControlToolkit مي باشد، مي پردازم.
مقدمه :
اين مقاله را با طرح يک مثال شروع مي کنم. فرض کنيد که يک سيستم خبرنامه نوشته ايد که تعدادي از کاربران در آن عضو شده اند و براي سهولت کاربران، امکان لغو اشتراک را توسط دکمه اي قرار داده ايد. حال اگر کاربر به طور اتفاقي و ناخواسته اين دکمه را کليک کند چه اتفاقي مي افتد؟
نتيجه اين مي شود که اشتراک کاربر در خبرنامه لغو مي شود. مشابه اين حالت مي تواند در موقعيت هاي مختلف مانند حذف رکورد ها از ديتابيس و ارسال فرم هايي با اطلاعات مهم پيش آيد. پس ما احتياج داريم که به نحوي اطمينان پيدا کنيم که کاربر به طور تصادفي دکمه را کليک نکرده است.
کنترل ConfirmButtonExtender به همين منظور به وجود آمده است.
شروع :
يک پروژه وب سايت از نوع ASP.NET AJAX-Enabled WebSite ايجاد نماييد. يک کنترل Label و يک کنترل Button به صفحه اضافه کنيد و در رويداد کليک Button قطعه کد زير را بنويسيد.
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Form Submited on : "+DateTime.Now.ToString("T");
}
|
همانطور که مشاهده مي کنيد، در صورتي که Button کليک شود، تاريخ کليک شدن آن را Label نشان مي دهد.
اکنون مي خواهيم هنگامي که کاربر روي دکمه کليک کرد، يک پنجره به شکل زير به کاربر نشان دهيم.
در صورتي که کاربر دکمه OK را کليک نمايد، متوجه خواهيم شد که دکمه به طور اتفاقي و ناخواسته کليک نشده است و رويداد کليک Button اجرا مي شود و در صورتي که دکمه Cancel را کليک نمايد، متوجه مي شويم که دکمه به صورت ناخواسته کليک شده است و رويداد کليک Button اجرا نمي شود.
يک کنترل ConfirmButtonExtender به صفحه اضافه کنيد. به نماي Source View برويد و قطعه کد آن را به شکل زير تغيير دهيد.
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server" TargetControlID="Button1" ConfirmOnFormSubmit="True" ConfirmText="آيا براي انجام اين کار مطمئن مي باشيد؟" > </cc1:ConfirmButtonExtender> |
اکنون به شرح صفات کنترل ConfirmButtonExtender مي پردازم
- TargetControlID : اين صفت نام Button يا LinkButton ي را نگهداري مي کند که قصد داريم هنگام کليک شدن آن توسط کاربر اعمالي که قبلا ذکر شد، انجام شود. در اين مثال، Button1 مي باشد.
- ConfirmText : جمله اي را نگهداري مي کند که از کاربر، زماني که دکمه کليک مي شود، پرسيده مي شود.
- OnClientCancel : نام يک تابع جاوا اسکريپت را نگهداري مي کند که زماني که کاربر دکمه Cancel را کليک مي کند، فراخواني مي شود. اين صفت اختياري مي باشد که بسته به نياز خود مي توانيد در زمان نياز، تابع جاوا اسکريپت آن را بنويسيد.
- ConfirmOnFormSubmit: با true نمودن اين صفت، تنها زماني پنجره مورد نظر ما نمايش داده مي شود که فرم بدون هيچ مشکلي آماده براي ارسال به سمت سرور يعني Submit شدن مي باشد. مثلا اگر فرمي داشته باشيم که در آن از Validator ها استفاده کرده باشيم، تنها زماني پنجره مورد نظر ما نمايش داده مي شود که فرم کاملا توسط Validator ها اعتبارسنجي شده و آماده براي Submit باشد.
صفحه مورد نظر را اجرا کنيد و نتيجه را مشاهده نماييد.
براي دريافت پروژه کامل انجام شده در اين مثال، از لينک بالاي مقاله استفاده نماييد.