راه حلی برای رفع مشکل استفاده از tinyMCE در داخل Update Panel
tinyMce یک ویرایشگر WYSIWYG متن باز می باشد که به دلیل قابلیت های بسیار زیاد و خوبی که دارد بین توسعه دهندگان نرم افزار محبوبیت زیادی دارد .
پروژه جدیدی که دارم روش به شدت کار می کنم بر مبنای Ajax است و در اکثر بخش ها از Ajax استفاده شده است.مطلب زیر نتیجه بررسی مشکل من در استفاده از tinyMce در داخل Update Panel می باشد.
tinyMce را به عنوان ویرایشگر برای این پروژه انتخاب کردم چرا که فیدبک خوبی از سوی مشتریان قبلی خودم گرفتم ، کار کردن باهاش راحته یک جوارائی ، اما مشکل اینجاست که این ادیتور با Update Panel مشکل داره.
مشکل از اینجا شروع می شه که وقتی tinyMce را در یک صفحه به خدمت میگیری در مرحله اول که صفحه لود میشه ادیتور بدون هیچ مشکلی جایگزین TextBox های مربوطه میشه و ادیتور بدون مشکل کار میکنه ، اما در Call Back ها دیگر ویرایشگر جایگزین TextBox ها نمی شود.
جستجو با استفاده از گوگل مرا به
این وبلاگ رساند که به بیان یک راه حل در رابطه با این مشکل پرداخته است ، با اضافه کردن بخش های توضیح داده شده در این مطلب مشکل مربوط به استفاده از tiyMce در داخل Update Panel حل می شود. اما این کدها تمامی مشکلات را حل نمی کنند . ، مشکل بعدی زمانی پیش می آید که شما بخواهید از tinyMce به عنوان یک User Control در پروژه خود استفاده کنید . در این حالت در هنگام Call Back ها tinyMce فایل های css مربوطه را گم می کند و style ها در call back لود نمی شوند و ظاهر ویرایشگر به هم میریزد .
برای این یک مشکل هنوز هیچ راه حلی پیدا نکردم جز اینکه فایل های css مربوطه را بصورت دستی با استفاده از تگ link به صفحه اضافه کنم ، اما باز مشکل به صورت 100درصد حل نشد چرا که نتوانستم فایل های cssی که آیکون های ادیتور از آن استفاده می کنند را پیدا بکنم ولی ظاهر ادیتور تا 95درصد به شکل درستش برمی گرد .
اما با کمی جستجو با استفاده از گوگل
به این صفحه رسیدم ، یکی از استفاده کنندگان از tinyMce که اتفاقا توسعه دهنده دات نت هم است پیشنهاد داده بود که بیائید و tinyMce را بصورت یک Custom Control دات نتی در بیاوریم برای دات نت . این کاربر بعد از مدتی
اولین نسخه از کنترل خود را ارائه داده است و اگر مطلبش را بخوانید متوجه می شوید که کنترل این کاربر هم با Ajax مشکلاتی را دارد (که با اضافه کردن دو قطعه کد فوق مشکل برطرف می شود.) ولی کنترلی که این کاربر ساخته با css ها مشکلی ندارد و tinyMce در Call back ها فایل های css خود را گم نمی کند .
خوبی این کنترل در این است که می توان از طریق خود کنترل به صورت برنامه نویسی و هم از طریق property های مربوطه که در این کنترل در نظر گرفته شده اند تنظیمات ادیتور را تغییر داد.