انتخاب تاریخ از جعبه متن ReadOnly با استفاده از تقویم Extender با AJAX در Asp.net
با سلام در این مقاله یک مسئله بسیار رایج در هنگام استفاده از کنترل CalendarAxactor Toolkit کنترل AJAX را توضیح خواهیم داد.
موضوع
هر گاه ویژگی ReadOnly جعبه متن به true تنظیم شود، داده های انتخاب شده در ویژگی Text از Textbox در PostBack در دسترس نیست، همانطور که در تصویر زیر نشان داده شده است.

دلیل
دلیل این مسئله این است که هر زمان که ارزش یک جعبه متن ASP.Net برای ReadOnly تنظیم شده باشد، مقدار جعبه متن با استفاده از اسکریپت client side مثل جاوا اسکریپت تنظیم می شود، در این صورت مقدار جعبه متن در متن موجود نیست ویژگی جعبه متن Calendar.Extender Toolkit کنترل AJAX ASP.Net با استفاده از جاوا اسکریپت برای تنظیم تاریخ انتخاب شده در جعبه متن استفاده می کند.
راه حل
راه حل این مسئله استفاده از مجموعه Request.Form است . همانطور که این مجموعه ارزش تمام فیلدهای ارسال شده به سرور را دارد و همچنین دارای مقادیری است که با استفاده از اسکریپت های client side مانند جاوا اسکریپت تنظیم می شود.
به این ترتیب، ما باید تغییر کوچکی در نحوه دریافت ارزش server side انجام دهیم.
C #
protected void Submit(object sender, EventArgs e)
{
string date = Request.Form[txtDate.UniqueID];
}
VB.Net
Protected Sub Submit(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strDate As String = Request.Form(txtDate.UniqueID)
End Sub
همانطور که می بینید در بالا می توانیم مقدار جعبه متن را از مجموعه Request.Form با استفاده از خصوصیت UniqueID جعبه متن که چیزی جزClient Side از کنترل ASP.Net TextBox نیست , دریافت کنیم .
تصویر زیر توضیح می دهد که با استفاده از مجموعه Request.Form، مقدار تاریخی انتخاب شده در حال حاضر در دسترس server side است