مدتی است که تصمیم گرفتهام پلاگینهای پر استفاده jQuery (مخصوصا پلاگینهای jQuery UI) را به صورت کنترلهای سفارشی ASP.NET درآورم تا استفاده از آنها در پروژههایم سادهتر شود. بالاخره بعد از مدتها نوشتن این کتابخانه را شروع کردم و برای شروع پلاگین انتخاب تاریخ (یا DatePicker) (که قبلا تاریخ شمسی آن را درست کردهبودم) را انتخاب کردم.
در این کتابخانه کنترلی به نام JQLoader ایجاد کردهام که وظیفه بارگذاری اسکریپتهای عمومی jQuery و همچنین تمهای مشترک را بر عهده دارد. این نسخه از این کتابخانه شامل 24 تم پیشساخته موجود در مجموعه jQuery UI است و امکان استفاده از تمهای اختصاصی نیز وجود دارد.
در نسخه اول این کتابخانه دو کنترل JQLoader (به شرحی که گفته شد) و JQDatePicker (کنترل انتخاب تاریخ میلادی و شمسی) وجود دارد که در این جا ارایه شدهاست.
استفاده از گریدویو (GridView) برای تهیه گزارشات ساده کاری است که در بین برنامه نویسان ASP.NET بسیار متداول است. برای تهیه خروجی از گریدویو به Excel و Word مقالات زیادی نوشته شده است که با یک جستجوی ساده نمونه های زیادی خواهید دید. یکی از فرمتهای متداولی که برنامه نویسان برای تهیه گزارش از آن استفاده می کنند، فرمت PDF است و طبیعتا برای تهیه خروجی به PDF نیز روشهای مختلفی ارایه شده که متاسفانه هیچ یک از آنها (تا جایی که من تست کرده ام) برای متون فارسی قابل استفاده نیست.
برای حل این مساله من با استفاده از iTextSharp یک کتابخانه برای تبدیل گریدویو به PDF (برای متون فارسی) تهیه کرده ام که در اینجا ارایه خواهم داد. این کتابخانه توانایی تبدیل گریدویو به PDF با حفظ استایل های داده شده به گریدویو را دارد.
دیروز این کامیون رو دیدم و نوشته پشت ماشین توجهم رو جلب کرد و با موبایل عکس گرفتم ازش. بدون هیچ توضیح اضافی عکس رو ببینید:

برای تایپ فارسی در صفحات وب سه راه متداول وجود دارد. اولین روش نصب کردن صفحه کلید فارسی در سیستم کاربر است که همیشه امکان آن وجود ندارد. روش دیگر استفاده از صفحه کلیدهای مجازی (On-Screen Keyboard) است که برای کاربران مبتدی (که مکان کلیدها را نمیشناسند) روش مناسبی است ولی برای کاربران متوسط و یا حرفهای، روش وقتگیر و عذاب آوری است. در نهایت روش آخر استفاده از JavaScript برای تغییر صفحه کلید به فارسی است که به نظر من راحتترین روش است و بحث من در اینجا محدود به این روش میشود.
اسکریپتهای مختلفی برای تایپ فارسی در صفحات وب وجود دارد. من هم تا کنون از این اسکریپت استفاده میکردم (با تشکر از تهیه کنندگان این اسکریپت). مشکلی که این اسکریپت و تمامی اسکریپتهای مشابهی که من دیدهام اینست که تنها در اینترنت اکسپلورر و فایرفاکس (و بعضا به طور ناقص در اپرا) کار میکنند، به طوری که من نتوانستم اسکریپتی که در تمامی مرورگرها بدون مشکل کار کند پیدا کنم. در نتیجه بعد از چند روز تلاش و امتحان کردن روشهای مختلف نهایتا به راه حلی رسیدم که در تمامی مرورگرهایی که من توانایی تست آنها را داشتم به خوبی کار میکند. در اینجا اسکریپت حاصل شده را ارایه دادهام.
امروز ابطحی وبلاگش رو از توی زندان آپدیت کرد. متن این پست آخر رو که خودندم، احساس کردم با بقیه وقتها فرق داره. به هر حال ابطحی سالهاست که داره وبلاگ مینویسه و خیلی راحت میشه طرز نوشتنش رو دید.
البته طبیعیه که بخاطر شرایط خاص زندان، لحن نوشته عوض بشه ولی مساله اینه که املای بعضی کلمات جوری بود که قبلا هیچوقت تو وبلاگ ابطحی اینجوری ندیده بودم! حدسم رو که آزمایش کردم، دیدم خیلی لغتها هستند که یا قبلا اصلا اینجوری نوشته نشده بودند و یا اینکه خیلی به ندرت اینجوری نوشته شده بودند. قسمت جالبتر این بود که بعضا از اصطلاحاتی استفاده شده بود که ابطحی عادت به استفاده از اونها نداره!
اینجا من نمیخوام نتیجه گیری خاصی از این موضوع بکنم، فقط این کلمات و اصطاحات رو آوردم تا شما هم ببینید و خودتون نتیجه گیری کنید.
در صفحات وب، هنگامی که صفحه عملیات رفت و برگشت به سرور را انجام می دهد (یا اصطلاحا PostBack می شود)، موقعیت اسکرول صفحه و تمام المنتهای موجود در صفحه از بین خواهد رفت. در ASP.NET 2 به سادگی و با استفاده از ویژگی MaintainScrollPositionOnPostBack میتوان موقعیت اسکرول صفحه را حفظ کرد ولی برای حفظ موقعیت اسکرول سایر المنتهای موجود در صفحه (مانند TextBoxهای چند خطی، ListBoxها، Panelها و ...) چنین امکانی وجود ندارد. این موضوع در هنگام استفاده از UpdatePanel بیشتر نیز جلب توجه میکند. من برای حل این مساله، راه حل ساده ای پیدا نکردم و بنابراین خودم دست به کار شدم و نتیجه کار اسکریپتی شد که در اینجا آنرا ارایه کرده ام.
دیروز انتخابات نظام مهندسی ساختمان به صورت کامپیوتری برگزار شد. برنامه این انتخابات رو من نوشته بودم. این برنامه همزمان تو چند استان دیگه هم اجرا شد. کار خیلی خیلی سنگینی بود ولی تجربه خیلی جالبی بود. مهمترین موفقیت هم این بود که هیات نظارت که خیلی روی امنیت و دقت انتخابات حساس بودن هم کاملا از این انتخابات راضی بودن. یک نشونه سالم بودن برگزاری انتخابات هم این بود که عموی من که جزو کاندیداها بود، رای نیاورد!
بزودی یه پست درباره بعضی از نکات جالب این انتخابات اینجا میذارم.