تصویر مهدی

تحریم الزیور (Elsevier)

اگر هنوز خبر رو نخوندید، از اینجا میتونید ببینید: پایگاه علمی الزویر تحریم شد.
لب کلام اینکه آقای فرهاد رهبر (رییس دانشگاه تهران) فرمودند که: «ارایه مقالات علمی به بیگانگان به منزله ساخت قصر علمی بیگانگان توسط خشت‌های دانشمندان ایرانی است که این بنا با تحریم کردن دانشمندان ایران فرو می‌ریزد» و روسای دانشگاه های کشور هم به اتفاق وزیر علوم و خلاصه هر کسی که در این کشور به نوعی نماینده قشر علمی به حساب میاد، حرف ایشون را تایید کردند و همه با کمک هم تصمیم گرفتند که این پایگاه علمی را تحریم کنند!

تصویر مهدی

Steve Jobs

Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.
تصویر مهدی

حل مشکل حروف فارسی در صفحات ایجاد وب در ASP.NET (مشکل ی و ک فارسی و عربی)

مقدمه:

یکی از مشکلات زبان فارسی در صفحات وب، وجود استانداردهای متفاوت برای کدهای حروف و صفحه‌کلید می‌باشد که خوشبختانه با جا افتادن استاندارد 2901 و در ادامه آن استانداردهای 6219 و 9147 تا حدودی سر و سامان گرفته است. مشکل اینجاست که هنوز هم کاربران زیادی هستند که صفحه کلید آنها به صورت استاندارد نیست و بیشترین مشکل هم در حروف ی و ک وجود دارد که در بسیاری موارد به اشتباه به صورت عربی آن (ي و ك) وارد می‌شود.

تصویر مهدی

بازگشت دوباره

سلام،

الان که به تاریخ آخرین پست نگاه می‌کنم، می‌بینم که بیشتر از دوسال می‌شه که من این سایت رو آپدیت نکردم. می‌دونستم که خیلی وقت از آخرین آپدیت گذشته، ولی اصلا فکر نمی‌کردم اینقدر طولانی شده باشه. به هر حال این دو سال هم دورانی از زندگی من بود که به علت مسائل شخصی، حتی روحیه لازم برای رسیدن به مسایلی مثل این سایت رو نداشتم.

تصویر مهدی

انتخاب تاریخ (شمسی و میلادی) در ASP.NET

مقدمه:

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

تصویر hamid.elmi

updatepanel

سلام

می خوام در مورد استفاده از چند updatepanel در asp.net صحبت کنم . به صورت پیش فرض وقتی از چند updatepanel توی یک صفحه استفاده می کنیم با update شدن یکی از آنها بقیه updatepanel ها هم update می شن که البته در بعضی شرایط مطلوب نیستن.
مثال زیر رو نگاه کنید :

<form id="form1" runat="server">
	<asp:ScriptManager ID="ScriptManager1" runat="server">
	</asp:ScriptManager>
	<asp:UpdatePanel ID="UpdatePanel1" runat="server">
		<ContentTemplate>
تصویر مهدی

تهیه خروجی PDF از GridView

مقدمه:

استفاده از گریدویو (GridView) برای تهیه گزارشات ساده کاری است که در بین برنامه نویسان ASP.NET بسیار متداول است. برای تهیه خروجی از گریدویو به Excel و Word مقالات زیادی نوشته شده است که با یک جستجوی ساده نمونه های زیادی خواهید دید. یکی از فرمتهای متداولی که برنامه نویسان برای تهیه گزارش از آن استفاده می کنند، فرمت PDF است و طبیعتا برای تهیه خروجی به PDF نیز روشهای مختلفی ارایه شده که متاسفانه هیچ یک از آنها (تا جایی که من تست کرده ام) برای متون فارسی قابل استفاده نیست.
برای حل این مساله من با استفاده از iTextSharp یک کتابخانه برای تبدیل گریدویو به PDF (برای متون فارسی) تهیه کرده ام که در اینجا ارایه خواهم داد. این کتابخانه توانایی تبدیل گریدویو به PDF با حفظ استایل های داده شده به گریدویو را دارد.

تصویر مهدی

اتصال خودکار رویداد به عناصر HTML با استفاده از نام class

مقدمه:

امروز سوالی در فروم برنامه نویس دیدم که به نظرم جالب بود. صحبت کلی تاپیک سر این بود که چطور رقمهای یک TextBox را میتوان سه رقم، سه رقم جدا کرد و تاپیک هم تقریبا به جواب رسیده بود. سوالی که به نظر من جالب آمد این بود:
آیا راهی وجود داره که برای کاما دار کردن تکست باکس لازم نباشه کد جاوا اسکریپت را در هر صفحه بنویسیم و با اضافه کردن یک خصوصیت به تکست باکس و لینک کردن این کد جاوا اسکریپت به صفحه بتونیم تکست باکسمون را کاما دار کنیم
فکر می کنم بتوان این سوال را به این صورت مطرح کرد که: چگونه رویدادها را به نام کلاس المنت (و نه خود المنت) متصل کنیم؟
راه حل اولی که به ذهن میرسد، پیدا کردن تمام المنتهای دارای کلاس مورد نظر و متصل کردن رویداد مورد نظر است ولی مشکلی که در این روش وجود دارد اینست که اگر عنصری بعدا اضافه شود، دیگر این رویداد را نخواهد داشت، در حالی که در اینجا هدف اینست که برای همه عناصر (حتی آنهایی که بعدا به صفحه اضافه شده اند) هم کار انجام شود.
تصویر مهدی

تایپ فارسی در صفحات وب سازگار با تمامی مرورگرهای متداول

مقدمه:

برای تایپ فارسی در صفحات وب سه راه متداول وجود دارد. اولین روش نصب کردن صفحه کلید فارسی در سیستم کاربر است که همیشه امکان آن وجود ندارد. روش دیگر استفاده از صفحه کلیدهای مجازی (On-Screen Keyboard) است که برای کاربران مبتدی (که مکان کلیدها را نمیشناسند) روش مناسبی است ولی برای کاربران متوسط و یا حرفه‌ای، روش وقت‌گیر و عذاب آوری است. در نهایت روش آخر استفاده از JavaScript برای تغییر صفحه کلید به فارسی است که به نظر من راحت‌ترین روش است و بحث من در اینجا محدود به این روش می‌شود.
اسکریپتهای مختلفی برای تایپ فارسی در صفحات وب وجود دارد. من هم تا کنون از این اسکریپت استفاده می‌کردم (با تشکر از تهیه کنندگان این اسکریپت). مشکلی که این اسکریپت و تمامی اسکریپتهای مشابهی که من دیده‌ام اینست که تنها در اینترنت اکسپلورر و فایرفاکس (و بعضا به طور ناقص در اپرا) کار می‌کنند، به طوری که من نتوانستم اسکریپتی که در تمامی مرورگرها بدون مشکل کار کند پیدا کنم. در نتیجه بعد از چند روز تلاش و امتحان کردن روشهای مختلف نهایتا به راه حلی رسیدم که در تمامی مرورگرهایی که من توانایی تست آنها را داشتم به خوبی کار می‌کند. در اینجا اسکریپت حاصل شده را ارایه داده‌ام.

تصویر مهدی

نگهداری وضعیت اسکرول ها در رفت و برگشت صفحات به سرور (در ASP.NET و سایر زبانهای تحت وب)

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

همزمانی محتوا