PDA

View Full Version : طريقه نوشتن component در وب



zamoozegar
شنبه 27 آذر 1389, 15:37 عصر
با سلام

چطوري مي شه يك component كه داراي فرم هم باشد نوشت؟

mehdi.mousavi
شنبه 27 آذر 1389, 15:41 عصر
با سلام چطوري مي شه يك component كه داراي فرم هم باشد نوشت؟

سلام.
لطفا به این مقاله (http://barnamenevis.org/showthread.php?221629-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%B1%D9%86%DA%AF-%D8%AF%D8%B1-ASP.NET-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-jQuery) رجوع کنید (البته در این مقاله من از jQuery استفاده کرده ام، اما خوب، روش یکی هستش).

موفق باشید.

zamoozegar
شنبه 27 آذر 1389, 15:52 عصر
من منظورم اينه كه يه كامپوننت مثل گزارش ساز داشته باشيم .
كه اين كامپوننت اگه ويندوزي نوشته بشه براي استفاده ازش فقط كافيه name.dll را add refrence كنيم و هر فرمشو (فيلتر گيري،انتخاب ستون هاي گزارش ، مشاهدهي گزارش هاي ذخيره شده و ....) رو با دستور show dialog باز كرد اما در وب هر كدوم از اين فرم ها يه فرم فيزيكي كه طراحي شده اند مي باشند ،اما اگه بخواهيم اينو به صورت component داشته باشيم بايد چه كنيم؟

mehdi.mousavi
شنبه 27 آذر 1389, 16:13 عصر
من منظورم اينه كه يه كامپوننت مثل گزارش ساز داشته باشيم. كه اين كامپوننت اگه ويندوزي نوشته بشه براي استفاده ازش فقط كافيه name.dll را add refrence كنيم و هر فرمشو (فيلتر گيري،انتخاب ستون هاي گزارش ، مشاهدهي گزارش هاي ذخيره شده و ....) رو با دستور show dialog باز كرد اما در وب هر كدوم از اين فرم ها يه فرم فيزيكي كه طراحي شده اند مي باشند ،اما اگه بخواهيم اينو به صورت component داشته باشيم بايد چه كنيم؟

سلام.
مقاله مزبور نیز نحوه درست کردن یک Assembly - اگر درست به خاطرم مونده باشه، UIControls.dll - رو بهتون میگه. برای استفاده از اون نیز کافیه Assembly مورد نظر رو به لیست Reference ها اضافه کنید و با Set کردن یکی دو Property از اون استفاده کنید (بدون اینکه درگیر جزییات اون کنترل بشید). حالا تو حالت شما، فرم هاتون Composite هستن. این به این معناست که شاید فرم هاتون رو نیاز باشه از UserControl مشتق کنید و ... در مورد "فیزیکی" بودن فرم ها در وب، متوجه منظورتون نشدم. مگه توی Windows Forms ها، فرم های مورد نظر در درون اون Assembly ها قرار نمیگیرن؟ این دیگه به هنر (و نیاز) برنامه نویس ربط داره که بخواد 20 تا فرم رو درون یک Assembly قرار بده، یا برای هر فرم یک Assembly مجزا طراحی کنه.

موفق باشید.

zamoozegar
دوشنبه 29 آذر 1389, 09:03 صبح
چرا براي هر فرم يك assembly؟
من مي گم حتي اگه براي هر فرم يه اسمبل گذاشت مگه استفاده كننده از اين component نبايد براي هر كدام از اين اسمبل ها يك فرم new كرده و سپس اين كنترل ايجاده شده در هر اسمبل رو در اون قرار بده؟ پس دوباره مي رسيم به 20 تا فرم.
اما اينكه مي گين 20 تا فرم در يك assembly ، خوب مگه استفاده كننده از اين كامپوننت نبايد علاوه بر add refrence فرم design يعني default.aspx تل default 20.aspx را نيز به webform هاش add كنه?

mehdi.mousavi
دوشنبه 29 آذر 1389, 09:42 صبح
چرا براي هر فرم يك assembly؟ من مي گم حتي اگه براي هر فرم يه اسمبل گذاشت مگه استفاده كننده از اين component نبايد براي هر كدام از اين اسمبل ها يك فرم new كرده و سپس اين كنترل ايجاده شده در هر اسمبل رو در اون قرار بده؟ پس دوباره مي رسيم به 20 تا فرم. اما اينكه مي گين 20 تا فرم در يك assembly ، خوب مگه استفاده كننده از اين كامپوننت نبايد علاوه بر add refrence فرم design يعني default.aspx تل default 20.aspx را نيز به webform هاش add كنه?

سلام.
بسیار خوب، تازه متوجه شدم دنبال چی هستید. این کاری که شما می خواهید انجام بدید، با نوشتن یه HttpHandler/Module (http://www.15seconds.com/issue/020417.htm) امکان پذیره. در واقع توی اون Module و بر اساس (بطور نمونه) پارامترهایی که در QueryString به اون Handler پاس می کنید (فایلی با دنباله ashx یا اگر نیاز بود، می تونید extension های مورد نظر خودتون رو نیز تعریف کنید)، میتونید تصمیم بگیرید که چه فرمی رو روی صفحه Render کنید (بصورت Dynamic). اینطوری، با استفاده از یک فایل (بطور مثال) default.ashx، میتونید N تا فرم رو بر اساس شرایط مختلف به کاربر برگردونید و دیگه حتی لازم نیست یک دونه فرم هم برای Host کردن اون کنترل ها ایجاد کنید (چون قبلا یک بار اینکارو در درون یک Assembly انجام داده اید و فقط در web.config اون Handler/Module رو به runtime system معرفی کرده اید).

موفق باشید.

zamoozegar
دوشنبه 29 آذر 1389, 13:16 عصر
سلام.
بسیار خوب، تازه متوجه شدم دنبال چی هستید. این کاری که شما می خواهید انجام بدید، با نوشتن یه HttpHandler/Module (http://www.15seconds.com/issue/020417.htm) امکان پذیره. در واقع توی اون Module و بر اساس (بطور نمونه) پارامترهایی که در QueryString به اون Handler پاس می کنید (فایلی با دنباله ashx یا اگر نیاز بود، می تونید extension های مورد نظر خودتون رو نیز تعریف کنید)، میتونید تصمیم بگیرید که چه فرمی رو روی صفحه Render کنید (بصورت Dynamic). اینطوری، با استفاده از یک فایل (بطور مثال) default.ashx، میتونید N تا فرم رو بر اساس شرایط مختلف به کاربر برگردونید و دیگه حتی لازم نیست یک دونه فرم هم برای Host کردن اون کنترل ها ایجاد کنید (چون قبلا یک بار اینکارو در درون یک Assembly انجام داده اید و فقط در web.config اون Handler/Module رو به runtime system معرفی کرده اید).

موفق باشید.

من در اين زمينه هيچ اطلاعاتي ندارم و نمي دونم چه طوري بايد اين كار رو انجام داد.
مي شه يه فايل بذارين كه كامل تشريح كنه و مهمتر اينكه يه sample


واقعا ممنون مي شم اگه راهنماييم كنيد